2013-03-07 35 views
6

Tôi đang chạy TEmbeddedwb và tôi gặp lỗi thời gian chờ javascript trong khi điều hướng trên TEmbeddedwb đó.delphi webbrowser: cách ngăn chặn hoặc ẩn lỗi javascript đó?

(Tôi không có lỗi này khi chạy trong trình duyệt Internet Explorer của tôi!)

enter image description here

Trình duyệt hỏi tôi nếu tôi muốn dừng việc thực hiện các kịch bản.

tôi đặt propertioes TEmbeddedwb để

im lặng = true

dialogoBox.disableAll = true

Nhưng tôi vẫn có popup này đến ra!

1) tại sao tôi có lỗi này (thử nghiệm trên 2pcs) trong khi không có lỗi trong khi điều hướng trên Internet explorer

2) làm thế nào để vô hiệu hóa/giấu popup này?

liên quan

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

Để trả lời câu hỏi đầu tiên bạn cần cung cấp liên kết đến trang bạn đang điều hướng tới. – TLama

+0

Vì vậy, bạn thấy 'MessageDlg' hay không? – kobik

+0

Tôi không thể tái tạo. Trang chuyển hướng đến 'https: // ....' và sau đó nó hỏi xem tôi có muốn xem nội dung không bảo mật không. Cho dù tôi trả lời có hoặc không trang nào hiển thị và phản hồi như mong đợi. Tôi nghĩ bạn cần cung cấp thêm thông tin chi tiết về những cài đặt bạn có thể có khác với 'bình thường', bất kể đó là gì. –

Trả lời

5

Làm thế nào để xử lý các lỗi JavaScript trong TEmbeddedWB?

Viết một handler cho sự kiện OnScriptError và trở về một trong những sẵn TScriptErrorAction giá trị trong tham số ScriptErrorAction đầu ra. Để bỏ qua lỗi tập lệnh và tiếp tục sử dụng, ví dụ:

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

+1, tôi tự hỏi liệu trình duyệt có thực sự ngừng thực thi tập lệnh (hoặc có thể nó sẽ bị treo?). – kobik

+1

Tôi chỉ cần thêm rằng sự kiện, và đặt một breapoint trong EmbeddedWB1ScriptError và nó không bao giờ đi đến đó! Nó hiển thị lỗi trực tiếp và EmbeddedWB1ScriptError không được gọi là tất cả! – yarek

Các vấn đề liên quan