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

时间:2013-09-23 17:38:26

标签: c++ bho windows-8.1 internet-explorer-11

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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