6

我正在运行 TEmbeddedwb 并且在该 TEmbeddedwb 上导航时出现 javascript 超时错误。

(我在 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.
4

1 回答 1

5

如何处理 TEmbeddedWB 中的 JavaScript 错误?

为事件编写一个处理程序并在输出参数中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;
于 2013-03-07T17:25:33.883 回答