Веб-браузер delphi: как предотвратить или скрыть эту ошибку javascript?

Я запускаю TEmbeddedwb и получаю ошибку тайм-аута javascript при навигации по этому TEmbeddedwb.

(У меня нет этой ошибки при работе в моем Internet Explorer!)

введите здесь описание изображения

Браузер спрашивает меня, хочу ли я остановить выполнение скрипта.

Я поместил свойства TEmbeddedwb в

без звука = правда

dialogoBox.disableAll = true

Но у меня все еще есть это всплывающее окно!

1) почему у меня эта ошибка (проверено на 2шт) при этом при навигации в Internet Explorer ошибки нет

2) как отключить/скрыть это всплывающее окно?

С уважением

    unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw_EWB, EwbCore, EmbeddedWB;

type
  TForm1 = class(TForm)
    iemain: TEmbeddedWB;
    procedure iemainScriptError(Sender: TObject; ErrorLine, ErrorCharacter,
      ErrorCode, ErrorMessage, ErrorUrl: String;
      var ScriptErrorAction: TScriptErrorAction);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.iemainScriptError(Sender: TObject; ErrorLine,
  ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: String;
  var ScriptErrorAction: TScriptErrorAction);
begin
       MessageDlg('hello', mtWarning, [mbOK], 0);
       if ErrorCode='123' then    ScriptErrorAction := eaContinue;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    iemain.Navigate('http://www.expedia.fr/Hotels');
end;

end.

person yarek    schedule 07.03.2013    source источник
comment
Чтобы ответить на ваш первый вопрос, вам нужно предоставить ссылку на страницу, на которую вы переходите.   -  person TLama    schedule 07.03.2013
comment
Так ты видишь MessageDlg или нет?   -  person kobik    schedule 07.03.2013
comment
Я не могу воспроизвести. Страница перенаправляется на «https://....», а затем спрашивает, хочу ли я видеть небезопасно доставленный контент. Независимо от того, отвечаю ли я да или нет, страница отображается и отвечает, как и ожидалось. Я думаю, вам нужно более подробно рассказать о том, какие настройки у вас могут отличаться от «нормальных», что бы это ни было.   -  person Tom Brunberg    schedule 16.01.2016


Ответы (1)


Как обработать ошибку JavaScript в TEmbeddedWB?

Напишите обработчик события OnScriptError и верните одно из доступных значений TScriptErrorAction в выходном параметре ScriptErrorAction. Чтобы игнорировать ошибку сценария и продолжить, используйте, например:

procedure TForm1.EmbeddedWB1ScriptError(Sender: TObject; ErrorLine,
  ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: string;
  var ScriptErrorAction: TScriptErrorAction);
begin
  if ErrorCode = 123 then
    ScriptErrorAction := eaContinue;
end;
person TLama    schedule 07.03.2013
comment
+1, интересно, браузер действительно остановит выполнение скрипта (а может и зависнет?). - person kobik; 07.03.2013
comment
Я просто добавил это событие и поставил точку паузы в EmbeddedWB1ScriptError, и оно никогда туда не попадает! Он отображает ошибку напрямую, а EmbeddedWB1ScriptError вообще не вызывается! - person yarek; 07.03.2013