在 OnDocumentComplete 中获取 iFrame 宽度和高度时出错

Error getting iFrame width and height in OnDocumentComplete

本文关键字:高度 出错 OnDocumentComplete 获取 iFrame      更新时间:2023-10-16

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

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

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

谢谢!

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