Ошибка при получении ширины и высоты iFrame в OnDocumentComplete

У меня есть вспомогательный объект браузера IE (BHO) (написанный на C ++), который записывает высоту и ширину iFrame (ов) и главной страницы, когда он получает уведомление о завершении документа (OnDocumentComplete). Этот код до сих пор работал нормально (все старые версии Windows и IE), но перестал работать в IE11 (настольный ПК) в Windows 8.1 для iFrames. Получение ширины и высоты главной страницы по-прежнему работает.

Я использую функции get_Height и get_Width из интерфейса IWebBrowser2. Вызов этих функций теперь возвращает ошибку 0x80004005 (неопределенная ошибка), а высота и ширина возвращаются равными 0.

Кто-нибудь сталкивался с этой проблемой? Похоже, это могло быть ошибкой в ​​IE11. Любая помощь будет оценена по достоинству.

Спасибо!


person Shailendra Paranjape    schedule 23.09.2013    source источник
comment
возможный дубликат веб-браузера C # при нажатии и выделение элементов Frame / iFrame   -  person Paul Sweatte    schedule 07.11.2013


Ответы (1)


Я заметил, что IE9 + (включая IE11), кажется, запускает события DOM onload = type «раньше», до того, как загружается вся DOM. В частности, в моем случае, когда у меня DOM браузера загружает документ SVG. Еще одной опасной областью могут быть веб-страницы с тегами <object>. Моя работа заключалась в том, чтобы поймать событие onload =, а затем подождать еще 0,75 секунды, пока DOM не успокоится. Несовершенный, сумасшедший хакер, но, похоже, помог.

person Dave    schedule 05.09.2014