0

Web ページを解析および分析するための Windows フォーム アプリケーションを開発しています。私はウェブブラウザコントロールを使用しました。Web ページには、以下の html および javascript コードがあります。私のWindowsフォームにはC#コードがあります。コードは次のとおりです。

HTML コード:

<div id="div1" onclick='func1(this);'>
</div>
<div id="div2">
</div>
<div id="div3">
</div>

Javascript:

function func1(element) {
    ...
}
document.getElementById("div2").onclick = function foo() { doSomething(); }
document.getElementById("div3").addEventListener("click", anyFunc);

関連する URL をナビゲートした後の Windows フォーム アプリケーションの C# コード:

HtmlElement el1 = WebBrowser.Document.GetElementById("div1");
HtmlElement el2 = WebBrowser.Document.GetElementById("div2");
HtmlElement el3 = WebBrowser.Document.GetElementById("div3");
String el1JavaFunc = el1.GetAttribute("onClick");
String el2JavaFunc = el2.GetAttribute("onClick");
String el3JavaFunc = el3.GetAttribute("onClick");
// check if el1JavaFunc is empty or null
// check if el2JavaFunc is empty or null
// check if el3JavaFunc is empty or null

このように、各要素の関連文字列を確認した後、要素に JavaScript 関数が割り当てられているかどうかを判断できます。これは el1 と el2 では機能しますが、el3 では null 文字列を返します。

addEventListener を使用して、3 番目の要素に JavaScript 関数が割り当てられていることをどのように把握できますか?

4

3 に答える 3

0

ここで言及されているかのように:要素にイベントリスナーがあるかどうかを確認してください。jqueryがありません

JavaScript を使用して、要素がイベントをリッスンしているかどうかを判断する方法はありません。最も近いのは getEventListeners(node) で、node は検査する要素です。ただし、これは Google chrome およびコンソールでのみ使用できます。したがって、本番環境では使用できません。

于 2016-01-25T12:47:50.527 に答える