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 完成执行时收到通知的主要内容,如果未能解决你的问题,请参考以下文章