【问题标题】:BHO render eventBHO 渲染事件
【发布时间】:2015-07-02 16:10:47
【问题描述】:

我正在使用 BHO 开发 IE 扩展。目前我正在使用 OnDocumentComplete 事件,该事件在页面加载完成时触发。我想在渲染 HTML 时注入我的 JavaScript,以便我可以即时更新 HTML。

简单示例: 我想替换 H​​REF 属性。但在 OnDocumentComplete 事件中,用户可以单击链接并访问实际链接。但是如果他/她等到页面加载完成,那么他/她将被重定向到更新的链接。

请提供您的宝贵意见,以便在渲染时更新 DOM。

谢谢, 梅特里

【问题讨论】:

  • 我也遇到了同样的问题,你有没有找到在文档被标记为完成之前注入 JS 的解决方案?

标签: javascript c# internet-explorer bho


【解决方案1】:

页面加载时,您可以使用:

<script>
   window.onload = function(){
      /* DOM handling */ 
   }
</script>

执行Javascript,你是这个意思吗?

【讨论】:

  • 但是如何使用 BHO 事件注入 JavaScript?
【解决方案2】:

您可以使用在OnDocumentComplete 处理程序内的窗口对象上调用的IHTMLWindow2::execScript 执行您的javascript:

public void OnDocumentComplete(object pDisp, ref object URL)
{
  HTMLDocument document = (HTMLDocument)webBrowser.Document;
  IHTMLWindow2 parentWindow = document.parentWindow;
  parentWindow.execScript("alert('your javascript')");
}

其中webBrowser 是您在SetSite 中设置的WebBrowser 类的对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2010-11-27
    • 2012-07-18
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多