我正在開發一個Windows窗體應用程序來解析和分析網頁。我使用網頁瀏覽器控制。該網頁有html和javascript代碼。和我的Windows窗體有c#代碼。下面是代碼:檢測HTML元素是否分配了javascript函數
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);
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返回空字符串。
我怎樣才能確定第三個元素使用addEventListener分配了javascript函數?
爲什麼你必須測試事件監聽器是否已被連接? –
[如何檢查動態連接的事件偵聽器是否存在?]可能的重複?(http://stackoverflow.com/questions/11455515/how-to-check-whether-dynamically-attached-event-listener-exists-or - 不)或[如何檢查是否有任何附加到元素/文檔的JavaScript事件監聽器/處理程序? ](http://stackoverflow.com/questions/2382994/how-to-check-if-any-javascript-event-listeners-handlers-attached-to-an-element-d) – Turnip