2013-03-07 7 views
6

Używam TEmbeddedwb i otrzymałem błąd przekroczenia czasu javascript podczas nawigacji na tym pliku TEmbeddedwb.delphi webbrowser: jak zapobiec lub ukryć ten błąd javascript?

(nie mam tego błędu podczas jazdy w moim Internet Explorer!)

enter image description here

Przeglądarka pyta mnie, czy chcę, aby zatrzymać wykonywanie skryptu.

kładę propertioes TEmbeddedwb do

silent = true

dialogoBox.disableAll = true

Ale nadal mam ten popup comming out!

1) dlaczego mam ten błąd (testowane na 2szt), podczas gdy nie ma błędu podczas nawigowania na Internet Explorer

2) Jak wyłączyć/ukryć ten popup?

pozdrowienia

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. 
+0

Aby odpowiedzieć na pierwsze pytanie, należy podać link do strony, do której prowadzi nawigacja. – TLama

+0

Więc widzisz 'MessageDlg' czy nie? – kobik

+0

Nie mogę się rozmnażać. Strona przekierowuje do "https: // ....", a następnie pyta, czy chcę zobaczyć zawartość dostarczaną nieseksualnie. Niezależnie od tego, czy odpowiem tak, czy nie, strona wyświetla się i odpowiada zgodnie z oczekiwaniami. Myślę, że musisz podać więcej szczegółów na temat ustawień, które mogą różnić się od "normalnych", cokolwiek to jest. –

Odpowiedz

5

Jak obsłużyć błąd JavaScript w TEmbeddedWB?

Napisz obsługi dla zdarzenia OnScriptError i powrót jednego z dostępnych TScriptErrorAction wartości w parametrze ScriptErrorAction wyjściowego. Aby zignorować błąd skryptu i kontynuować używanie, np .:

procedure TForm1.EmbeddedWB1ScriptError(Sender: TObject; ErrorLine, 
    ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: string; 
    var ScriptErrorAction: TScriptErrorAction); 
begin 
    if ErrorCode = 123 then 
    ScriptErrorAction := eaContinue; 
end; 
+0

+1, zastanawiam się, czy przeglądarka rzeczywiście zatrzyma wykonywanie skryptu (a może zawiesi się?). – kobik

+1

Właśnie dodałem to wydarzenie i wstawiłem breapoint w EmbeddedWB1ScriptError i nigdy tam nie idzie! Wyświetla błąd bezpośrednio, a EmbeddedWB1ScriptError nie jest w ogóle wywoływany! – yarek

Powiązane problemy