BHO:onload 完成执行时收到通知

Posted

技术标签:

【中文标题】BHO:onload 完成执行时收到通知【英文标题】:BHO: getting a notification when onload finishes executing 【发布时间】:2013-12-24 03:44:28 【问题描述】:

我正在编写一个应该对特定页面进行轻微修改的 BHO。我会使用DISPID_DOCUMENTCOMPLETE,但问题是页面在onload 函数上使用AJAX 加载了更多内容。

我认为对我来说完美的解决方案是在onload 返回后运行我的代码。发生这种情况时有什么方法可以得到通知?

编辑:其实不是onload,而是jQuery的ready。恐怕没有干净的方法来实现我想要的。我想我必须实现一个计时器并定期检查页面,尽管我希望避免这种情况。

【问题讨论】:

【参考方案1】:

您可以尝试使用DISPID_htmlDOCUMENTEVENTS2_ONREADYSTATECHANGE(您必须建议使用DIID_HTMLDocumentEvents2),然后使用IHTMLDocument2 中的get_readyState

您很幸运,您的页面是一个特定的页面,您可能会看到可以依赖的特定事件序列。一般情况确实涉及定期轮询(恕我直言)

【讨论】:

谢谢,但我试过了,但没有用。该页面被标记为过早准备就绪。好吧,我想拉是要走的路。 好的,最后一个建议:如果可以,记录每个 DISPID(如果您自己实现了 Invoke),并为 DIID_HTMLWindowEvents2 提供建议。您可能会发现“迟到”的事件。

以上是关于BHO:onload 完成执行时收到通知的主要内容,如果未能解决你的问题,请参考以下文章

Inno Setup卸载时注销bho

关闭时未收到 NSNotificationCenter 通知

JS onload

window.onload在文档加载完成后执行

JavaScript代码在页面完成自动方式

JavaScript代码在页面完成自动方式