Mohamad77 Ответов: 1

Получить определение функции javascript onClick с помощью элемента управления webbrowser


Я разрабатываю приложение windows form для анализа и анализа веб-страниц. Я использовал управление веб-браузером. Веб-страница имеет код html и javascript ниже. и моя форма windows имеет код c#. Вот код:

HTML-код:
<div id="div1" >
</div>
<div id="div2">
</div>


Язык JavaScript:
function func1(element) {
    ...
}

document.getElementById("div2").onclick = function foo() { doSomething(); }


Код C# в моем приложении windows form после навигации по соответствующему URL-адресу:
HtmlElement el1 = WebBrowser.Document.GetElementById("div1");
HtmlElement el2 = WebBrowser.Document.GetElementById("div2");
String el1JavaFunc = el1.GetAttribute("onClick");
String el2JavaFunc = el2.GetAttribute("onClick");


Результат как для el1JavaFunc, так и для el2JavaFunc таков Система.__ComObject.

Как я могу получить Назначенное имя функции javascript? Например, получить func1 для el1.

Должен ли я использовать какой-либо другой элемент управления вместо WebBrowser?

Пожалуйста, обратите внимание, что мне не нужно выполнять события, и я знаю эту систему.__ComObject-это как оболочка для функций JavaScript.

1 Ответов

Рейтинг:
0

Sam Hobbs

Для EL1 начинает:

mshtml.IHTMLDOMNode node = el1.DomElement as mshtml.IHTMLDOMNode;
String el1JavaFunc = node.attributes("onclick").value.ToString();


И то же самое можно сделать для el2. За исключением того, что я не думаю, что он вернет func1; я не понимаю, почему вы этого ожидаете.

Видеть Система.__ComObject возвращается, когда я использую getAttribute.