我已经实现了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将触发哪个事件?
最佳答案
您必须在DocumentLoaded
事件中添加条件,如下所示,
if (rootDocLoaded && (HTMLDocument != null) && url != "about:blank"){
//Your code here
}
使用以上条件,仅在整页加载后才调用它。您还可以使用
beforeNavigate
和Navigate
方法。关于c# - BHO插件无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38205542/