Webbrowser и JavaScript

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Webbrowser и JavaScript

Сообщение Gogic » 01.04.2010 (Чт) 20:16

Здравствуйте.

Вопрос такой по WebBrowser: можно ли отследить выполнение функций javascript на определенной web-странице, и записать название вызванной функции в переменную VB?
Функции вызываются сторонними объектами web-страницы, такими, как Flash, к примеру.
Думаю что можно, просто с WebBrowser пока что на "Вы".

Спасибо.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Webbrowser и JavaScript

Сообщение Antonariy » 01.04.2010 (Чт) 22:40

Нельзя.
Лучший способ понять что-то самому — объяснить это другому.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Webbrowser и JavaScript

Сообщение Gogic » 01.04.2010 (Чт) 23:51

Нельзя.


Обоснуйте. Должны быть варианты.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Webbrowser и JavaScript

Сообщение iGrok » 02.04.2010 (Пт) 0:35

Gogic писал(а):
Нельзя.


Обоснуйте. Должны быть варианты.


Почитай, что написано над ником у того, кто тебе ответил. Если ты не в курсе, это был ответ от человека, который изковырял WB вдоль и поперёк.
Если он говорит нельзя, значит штатными методами этого сделать нельзя.
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Webbrowser и JavaScript

Сообщение Денис » 02.04.2010 (Пт) 8:45

iGrok писал(а):Почитай, что написано над ником у того, кто тебе ответил.


А может он не признает авторитетов и верит только своим глазам?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Webbrowser и JavaScript

Сообщение Antonariy » 02.04.2010 (Пт) 10:10

В общем случае нельзя, в частном же, если функция изменяет свойства dom-элементов, можно ловить onpropertychange, выяснять, что за элемент был изменен, не в результате ли действий этой функции. Короче, косвенно.

Можно повесить свой обработчик на то же событие того же элемента, которое обрабатывает интересующая функция, и по факту срабатывания делать вывод, что функция выполнится. Или не выполнится, если в своем обработчике вернуть false. Однако к флешу и стронним объектам этот способ отношения не имеет.

Влезть же внутрь контекста исполнения, выяснить, например, что за функции (не меняющие контента) вызывает произвольный js-код, может только программа-отладчик, разбирающаяся в js-интерпретаторе IE (а это только VS.NET), и только, если это разрешено в IE.
Лучший способ понять что-то самому — объяснить это другому.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Webbrowser и JavaScript

Сообщение Gogic » 02.04.2010 (Пт) 11:13

Почитай, что написано над ником у того, кто тебе ответил.


Уважительно отношусь к авторитетам, но, доверяй, но проверяй, как говорится :D

Можно повесить свой обработчик на то же событие того же элемента, которое обрабатывает интересующая функция, и по факту срабатывания делать вывод, что функция выполнится. Или не выполнится, если в своем обработчике вернуть false. Однако к флешу и стронним объектам этот способ отношения не имеет.


Да, именно в эту сторону я и думал. Например, внутри нужной функции js мы пишем код, который добавляет строку (имя этой функции) в некий буфер (это может быть хоть элемент веб страницы, но хотелось бы обойтись без него), а в VB, в свою очередь, вешаем таймер, который отслеживает изменения этого буфера (элемента).

Так вот, теперь вопрос будет такой: какой промежуточный буфер (String) лучше использовать для этих целей? То есть, к которому есть доступ и из JS на web-странице, и из кода VB? Хотелось бы обойтись без использования дополнительных элементов web-страницы.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Webbrowser и JavaScript

Сообщение Antonariy » 02.04.2010 (Пт) 12:06

Например, внутри нужной функции js мы пишем код, который добавляет строку (имя этой функции) в некий буфер (это может быть хоть элемент веб страницы, но хотелось бы обойтись без него), а в VB, в свою очередь, вешаем таймер, который отслеживает изменения этого буфера (элемента).
Если так, то ради бога.

Можно в head обявить буфер var strBuffer, из яваскрипта он будет доступен в том числе как document.parentWindow.strBuffer, но будет ли он доступен точно так же извне IE, если объявить окно as object, не в курсе. Если таки не доступно, можно получить скриптом debug.print window.execScript("return(strBuffer)").

А еще можно внедрить в контекст окна любой собственный объект и отчитываться ему, но это извращение.
Лучший способ понять что-то самому — объяснить это другому.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Webbrowser и JavaScript

Сообщение Gogic » 02.04.2010 (Пт) 19:07

Спасибо, а можно с примером кода на javascript?

Как прописывать в head, пример установки значения из функции js.

Из VB он должен быть доступен, как WebBrowser1.document.parentWindow.strBuffer, я правильно понял?

Про вызов скриптом честно говоря не догнал :)

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Webbrowser и JavaScript

Сообщение Gogic » 02.04.2010 (Пт) 23:48

Спасибо, из VB он доступен.
Вы реальный повелитель IE :D

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Webbrowser и JavaScript

Сообщение Gogic » 04.04.2010 (Вс) 17:12

Чуть не забыл свой самый главный вопрос.
Как вызвать функцию JS из VB.

Знаю, что execscript, а как конкретно не знаю :(


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 64

    TopList