3

我有一个 IE 浏览器帮助程序对象 (BHO)(用 C++ 编写),它在收到文档完成通知 (OnDocumentComplete) 时记录 iFrame(s) 和主页的高度和宽度。到目前为止,此代码一直运行良好(所有旧 Windows 和 IE 版本),但已停止在 Windows 8.1 for iFrames 上的 IE11(桌面)中运行。获取主页的宽度和高度仍然有效。

我正在使用 IWebBrowser2 接口中的 get_Height 和 get_Width 函数。对这些函数的调用现在返回一个错误,0x80004005(未指定的错误),返回的高度和宽度为 0。

有没有人遇到过这个问题?听起来这可能是 IE11 中的错误。任何帮助将不胜感激。

谢谢!

4

1 回答 1

0

我观察到 IE9+(包括 IE11)似乎在加载整个 DOM 之前“提前”触发 onload= type DOM 事件。特别是在我让浏览器 DOM 加载 SVG 文档的情况下。带有标签的网页<object>可能是另一个风险领域。我的解决方法是捕捉 onload= 事件,然后再等待 0.75 秒让 DOM 稳定下来。一个不完美的,疯狂的黑客,但它似乎有帮助。

于 2014-09-05T14:36:48.160 回答