Остановите всплывающие окна с ошибками сценария TWebBrowser, но не останавливайте событие OnShowScriptError - PullRequest
0 голосов
/ 09 января 2019

Модальные окна ошибок скрипта могут быть подавлены в TWebBrowser установкой

Silent := True;

но также запрещает OnShowScriptError событие.

Я хотел бы собрать ошибки скрипта с помощью OnShowScriptError, но остановить модальные окна ошибок.

1 Ответ

0 голосов
/ 09 января 2019

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

Нет, вам нужно другое поведение. В образце ниже: 1) Появится окно сообщения из окна веб-браузера. 2) Информация об ошибке будет добавлена ​​в TMemo компонент

URL для тестирования: http://1click.sdk.1click.lv/test.asp

Код Javascript на этой странице:

  <script type="text/javascript">
  alert("test1"); 
  var t = 100 / x0;
  </script>

Резюме: пользователь увидит предупреждение («тест»), но не информацию об ошибке.

Что еще важно? Вы должны включить отладку скриптов в Internet Explorer, иначе вся информация о будет пропущена.

enter image description here

Образец Delphi:

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://1click.sdk.1click.lv/test.asp');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Silent := False;
end;

procedure TForm1.WebBrowser1ShowScriptError(ASender: TObject;
  const [Ref] AErrorLine, AErrorCharacter, AErrorMessage, AErrorCode,
  AErrorUrl: OleVariant; var AOut: OleVariant; var AHandled: Boolean);
begin
  Memo1.Lines.Add(AErrorMessage);

  AHandled := True;
end;

enter image description here

Что вы действительно хотите: http://web.archive.org/web/20150329085438/http://support.microsoft.com/en-us/kb/261003 (Как обрабатывать ошибки скрипта в качестве управляющего хоста WebBrowser)

...