BHO插件无法正常工作

时间:2016-07-05 14:05:25

标签: c# internet-explorer bho

我已经实现了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会触发哪个事件?

1 个答案:

答案 0 :(得分:4)

您必须在DocumentLoaded事件中添加条件,如下所示

if (rootDocLoaded && (HTMLDocument != null) && url != "about:blank"){
  //Your code here
}

使用上述条件,在整页加载后只调用一个。您也可以使用beforeNavigateNavigate方法。