Установить события JavaScript в элементе управления WebBrowser - PullRequest
1 голос
/ 13 апреля 2010

У меня есть элемент управления WebBrowser и я пытаюсь установить атрибуты onclick и href для всех ссылок.

foreach (HtmlElement link in webBrowser1.Document.Links)
{
      link.SetAttribute("href", "http://www.google.com");
      link.SetAttribute("onclick", "return false;");
}

Работает хорошо. Когда я выхожу из исходного кода внешнего HTML, я вижу, что атрибуты существуют. Но код JavaScript не работает. Почему и как я могу заставить элемент управления WebBrowser выполнять код JavaScript?

1 Ответ

2 голосов
/ 14 апреля 2010

onclick - это свойство типа IDispatch. Вы можете назначить функцию без параметра для свойства или добавить атрибут в HTML и позволить анализатору сделать это за вас, но вы не можете назначить ему строку через DOM.

Вы можете передать объект, который реализует IDispatch и метод по умолчанию (dispid = 0), свойству или использовать IHTMLElement2 :: attachEvent, чтобы прикрепить обработчик события. Если вы используете библиотеки классов Microsoft, вы можете использовать оболочки Microsoft, например HtmlElement.AttachEventHandler в Windows Forms и HtmlElement.Attachevent в Silverlight.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...