IE9 ломает мой код ActiveX WebBrowser - PullRequest
2 голосов
/ 17 июня 2011

Я использую элемент управления WebBrowser, встроенный в окно в приложении PowerBuilder. Часть этого использования предназначена для слияния почты, когда я загружаю документ с помощью Navigate (url, ...), а затем жду DocumentComplete (с ReadyState, равным 4, то есть Complete).

После этого я хочу получить тело документа, изменить его, а затем распечатать. Но этот document.body имеет нулевое значение, то есть он еще не загружен. Если я запускаю отладчик или вставляю MessageBox перед попыткой получить тело, это всегда нормально.

В IE8 это работало нормально, без перерыва или чего-либо еще.

Я пробовал добавлять вызовы Yield (), спать несколько секунд и т. Д., Но ничего из этого не помогает.

Я также на 64-битном компьютере с Windows 7, не уверен, имеет ли это отношение.

Какие-нибудь яркие идеи? Спасибо.

1 Ответ

1 голос
/ 27 июня 2011

OK. Оказывается, в моем событии DocumentComplete я установил DesignMode на On. Это необходимо, когда я объединяю один документ и затем позволяю пользователю редактировать его, но когда я выполнял слияние по электронной почте и слияние, печатал в PDF и затем отправлял один документ за другим по электронной почте, в этом не было необходимости.

В IE8 и более ранних версиях проблем не возникало. Но в IE9 это по какой-то причине привело к тому, что document.body стал нулевым, если только я не сделал что-то вроде перерыва в отладчике или MessageBox. Так как в этом процессе слияния электронной почты это было неуместно, я просто кодировал вещи, поэтому в этой ситуации я не установил в DesignMode значение «Вкл.», И теперь все в порядке.

...