我已经实现了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
}


使用以上条件,仅在整页加载后才调用它。您还可以使用beforeNavigateNavigate方法。

关于c# - BHO插件无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38205542/

10-09 23:09