|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
||||||||||||||||||||||||||||||||||||
Добавить window.addEventListener в webbrowser27.02.2020, 05:25. Показов 1099. Ответов 10
Привет всем, вопрос был задан в ветке С#, но он в равной степени относится и к JS.
Продублирую его здесь. Да простят меня админы если это делать нельзя. (Ну или не простят -_-). Перейду сразу к вопросу, на сайте есть такой код:
Дело в том, что я отловил передающее окно, и запустил его отдельно, убрав всю рекламу и ид с родительского сайта. Необходимые скрипты переданы:
Решил пойти другим путем и добавил:
Т.Е. вопрос в том, как правильно отловить события, которые обрабатывал изначальный скрипт. Вохможно ли, что, поскольку я запустил его по прямой ссылке (....game.jsp?...), то событие он передает мне на форму или браузер, но не webBrowser1.Document? Может есть смысл сделать "пустую обертку" и вставить туда окошко с игрой, и тогда он будет передавать события на обертку, т.е. в webbrowser.document, и мои скрипты, или AttachEventHandler его перехватят? Заранее спасибо. PS. На всякий случай скину webbrowser.document страницы, после перехвата: Кликните здесь для просмотра всего текста
0
|
||||||||||||||||||||||||||||||||||||
| 27.02.2020, 05:25 | |
|
Ответы с готовыми решениями:
10
Window.onload/addEventListener
Можно ли добавить addEventListener к конкретной колонке таблицы? |
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
|
| 27.02.2020, 07:41 | |
|
dolgushin, Java и JavaScript полностью разные языки программирования и они не родственники, их сравнивать так же глупо как говорить о одинаковости C++ и С# мол а че в названии на символ отличается.
Flash мертвая технология и давно объявлено о дате ее закрытия до которой вроде годик остался, про синхронизацию JavaScript и ActionScript вам могут помочь только олдскулы но тех кто помнит вы уже не найдете, они давно перестроились под другие технологии, работа не стоит.
0
|
|
|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
||
| 27.02.2020, 08:05 [ТС] | ||
|
Flash - да, мертвая, но закрываться она не собирается (за исключением гугл хром, конечно), но проекты на ней продолжают жить, и будут жить пока приносят деньги, разумеется что никто под нее ничего нового писать не будет (в здравом уме и светлой памяти, естественно). Ну в любом случае спасибо за наводку.
0
|
||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 27.02.2020, 08:07 | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
||
| 27.02.2020, 08:12 [ТС] | ||
|
До этого писал в Java Сети, но поскольку моя первая строчка имела неосторожность содержать "в JS я новичок" меня кинули в Java для нупов, так что теперь не умничаю и сижу здесь xD Update: Если перейти по ссылке - форум программистов из раздела C#,то JS там нет, вот в чем подвох.
1
|
||
|
|
||||||
| 27.02.2020, 10:37 | ||||||
|
dolgushin, довольно сложно сказать, почему неизвестно какая страница перестала работать, после того как ты ее раскурочил. Могу только обратить твое внимание несколько подозрительных для меня моментов, но подозреваю, что этого будет недостаточно.
Во-первых, очень странный способ добавления новых скриптов на страницу. Ты создаешь один объект скрипта, инициируешь его кодом, добавляешь. После этого добавляешь в этот же самый объект новый код и этот же объект добавляешь на страницу. Тут нужно либо весь код запихнуть в объект сразу, либо для каждой функции создавать новый объект скрипта. Я предположил, что это могло бы сработать, но вот такой код в IE отработал только частично Кликните здесь для просмотра всего текста
Во-второых, тебе следовало бы поинтересоваться, что такое событие message. Если в двух словах, то происходит оно когда из одного окошка (фрейма) передается сообщение в другое. Вот ты целевое окно (родительский фрейм) удалил, и что ты думаешь, что страничка, которую ты оставил после этого будет отправлять сообщение самой себе? Или ты как-то этот вопрос обработал? В-третьих, сам WebBrowser. Этот элемент управления работает на движке trident (IE-шном), причем по умолчанию в режиме совместимости аж с 7-ой версией IE. Если на странице нет специального метатега, указывающего более позднюю версию, то отображаться там будет все по старым правилам, которые, возможно, уже не поддерживаются страницей, даже несмотря на то, что там до сих пор флеш используется. Это то, что бросается в глаза, не факт, что проблема именно в этом. Добавлено через 3 минуты Относительно обертки. Я думаю, что разумнее было бы оставить страницу как есть, просто все лишнее либо скрыть, либо запретить загрузку. Внешние ресурсы можно не загружать обработав событие Navigating браузера и просто проверять адреса, откуда что грузится. Для элементов, внедренных в страницу можно назначить стили, чтобы они не отображались. В принципе так можно убрать все, кроме нужного, при этом страница будет работать, без всех этих плясок с бубнами.
1
|
||||||
|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
||||||
| 27.02.2020, 13:24 [ТС] | ||||||
|
Если вы про этот кусок кода, то он работает отлично.
Кликните здесь для просмотра всего текста
По факту окошко там есть, и передается оно на него. Проблема именно в пост сообщениях. Моя вина, 3 версии сайта были сделаны по определенному методу, а в 4 переделали на события - post. Обратил внимание уже позже написания этого поста. Когда спрашивал айтишника он даже забыл упомянуть об этом. Так что смотрю в этом направлении. Нужно принять parent.postMessage(). Пойду разбираться дальше. Если подкините еще статей с примерами на эту тему буду благодарен. Отключить то можно, и я так делал изначально, navigating по ненужным фреймам тоже можно отключить. Но проблема в том, что картинки, которые все арвно грузятся, хоть и не отображаются. В итоге слишком долго работает. возможно проще написать свою пустую страницу с нужными JS и засунуть туда нужный фрейм. Но пока попробую с вариантом, который уже работает для 3 версий. Добавлено через 30 минут и PS. именно так страница и не будет работает в webbrowser. половина - ошибка скриптов, половина просто не реагирует. менял на 11 IE и .NET 4.8 - песня та-же. Поэтому приклеил скрипты ручками, предварительно скопировав нужное с главного сайта. Кстати, может знаете, есть ли возможность вклеить поддержку JAVA в приложение, или придется использовать другой браузер, у которого она уже есть? Ведь если IE JAVA не установлен на машине, то запускаться он не будет. Можно, конечно добавить его в инсталлер, но не хотелось бы заставлять "устанавливать" приложение, уж лучше при запуске распаковать его в директорию и использовать его там.
0
|
||||||
|
|
||||||||
| 27.02.2020, 14:08 | ||||||||
|
0
|
||||||||
|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
|
| 02.03.2020, 04:29 [ТС] | |
|
Что-то цитаты у меня не вставляются. Если картинка находится на родном сайте, то Navigating ее не отключить, только если это левый фрейм, как я понял.
Тут функционал практически не затрагивается. Именно, так и должно быть, но почему-то скрипты приказали долго жить и отрубились, т.е. если запустить страницу в IE то нажатя кнопок и тд обрабатывается скриптами, а если запустить в webbrowser то ничего не работает. Поэтому скрипты пришиваю ручками, и решил выйти в отдельное окно, чтобы грузилось меньше А у какого браузера уже есть поддержка явы? Ты имеешь в виду апплеты что ли? Они разве не умерли еще? Ну может есть возможность вставить компонент и насильно указать что ява тут, а не искать ее предустановленную на машине, точно знаю, что так сделать можно, на как именно не знаю. Пока в инете инфы не нашел. По поводу получение postmessage походу это обрабатывает beforenavigating2, сейчас посмотрю подробнее эту метод, может что нарою.
0
|
|
|
|
|||
| 02.03.2020, 19:25 | |||
|
Там в последнем ответе пишут, что на шарпе это сделать непросто. Надо запрашивать интерфейсы через QueryInterface, документация по этим интерфейсам почему-то уже недоступна и т. д. Ну что тут можно сказать... в других веб-движках это сделать проще, так что есть смысл подумать об использовании чего-то другого.
0
|
|||
|
3 / 3 / 0
Регистрация: 22.11.2019
Сообщений: 55
|
|||||||||||||||||
| 06.03.2020, 12:07 [ТС] | |||||||||||||||||
|
оказалось все проще чем я думал. В коде сайта нашел место откуда посылается запрос:
Возник вопрос как обработать postData, ведь мне приходил класс _Object. Поиски в нем прошли безуспешно. Тогда решил пойти обходным путем.
Добавлено через 12 минут diadiavova,
0
|
|||||||||||||||||
| 06.03.2020, 12:07 | |
|
Помогаю со студенческими работами здесь
11
Как на C# добавить новый метод к Window.External? Добавить скрипт в webBrowser Вызов Window.ShowDialog() срабатывает как Window.Show(), т.е. я могу нажимать на другие окна
Как добавить прокси в WebBrowser Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|