我已经实现了BHO插件来使用C#从网页中检测NUmber。每次加载页面都会在网页中附加javascript并且javascript检测到数字并将其替换为超链接号。
代码
public void WebBrowser_DownloadComplete()
{
HTMLDocument document = (HTMLDocument)webBrowser.Document;
IHTMLElement head = (IHTMLElement)((IHTMLElementCollection)
document.all.tags("head")).item(null, 0);
IHTMLScriptElement scriptObject =
(IHTMLScriptElement)document.createElement("script");
scriptObject.type = @"text/javascript";
scriptObject.src = @"myscript.js";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject);
}
问题
当我使用离线网页测试插件时,它工作正常。但是对于在线页面,它无法正常工作。 DownloadComplete事件会多次触发。
问题
刷新并加载页面时,IE会触发哪个事件?
答案 0 :(得分:4)
您必须在DocumentLoaded
事件中添加条件,如下所示
if (rootDocLoaded && (HTMLDocument != null) && url != "about:blank"){
//Your code here
}
使用上述条件,在整页加载后只调用一个。您也可以使用beforeNavigate
和Navigate
方法。