Сообщение об ошибке, блокирующее обновление TWebBrowser - PullRequest
1 голос
/ 08 сентября 2010

Я использую TWebBrowser в своем приложении Delphi. При появлении диалогового окна «Ошибка сценария Internet Explorer» блокируются автоматические обновления ("the requested resource is in use"). Есть ли способ автоматически закрыть диалог ошибки?
ТИА
Стивен

редактировать
Одним из возможных решений является использование элемента управления ActiveX Mozilla вместо IE (Firefox никогда не выдает ошибку), но у него свои проблемы .

Ответы [ 2 ]

4 голосов
/ 08 сентября 2010

Установите для свойства TWebBrowser Silent значение True в Инспекторе объектов или в коде:

  WebBrowser1.Silent := True;
  WebBrowser1.Navigate2(sURl);

Это предотвратит всплывающее окно с сообщением об ошибке, поэтому вам не нужно его закрывать; -)

1 голос
/ 08 сентября 2010

Вы можете закрыть диалоговое окно, щелкнув его кнопку в коде, но, возможно, лучшим способом является предотвращение ошибки, из-за которой диалоговое окно отображается в первую очередь.

Я только догадываюсь здесь, но я думаю, что вы можете получить эту ошибку, когда вы пытаетесь обновить страницу до ее завершения загрузки. Метод Navigate2 является асинхронным, т.е. он немедленно возвращается, и браузер продолжает загружать страницу в фоновом потоке. Когда документ загружен, браузер вызывает событие OnDocumentComplete, которое вы должны обработать, чтобы обновить переменную состояния. Не пытайтесь позвонить Navigate2, Refresh или Refresh2 до полной загрузки текущего документа.

...