解决方案 »

  1.   

    以下代码可以屏蔽js提示.
    备注: JS提示的屏蔽会带来其他问题, 比如屏蔽询问JS通行的窗口会导致界面使用问题unit Unit11;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, OleCtrls, SHDocVw{, ActiveX, ShellAPI};type
      TForm11 = class(TForm)
        wb1: TWebBrowser;
        edtURL: TEdit;
        procedure edtURLKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
        procedure wb1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
          var Cancel: WordBool);
        procedure wb1NavigateComplete2(ASender: TObject; const pDisp: IDispatch;
          var URL: OleVariant);
        procedure wb1StatusTextChange(ASender: TObject; const Text: WideString);
        procedure wb1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch;
          var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
          var Cancel: WordBool);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
      private
        { Private declarations }
        vStatusText: WideString;
        vUpdating: Boolean;
      public
        { Public declarations }
      end;var
      Form11: TForm11;implementation{$R *.dfm}procedure TForm11.edtURLKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = 13 then
        wb1.Navigate(edtURL.Text);
    end;procedure TForm11.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      wb1.Navigate('about:blank;');
    end;procedure TForm11.wb1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch;
      var URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
      var Cancel: WordBool);
    begin  Cancel := vUpdating;
      Cancel := (URL = vStatusText);
    end;procedure TForm11.wb1NavigateComplete2(ASender: TObject; const pDisp: IDispatch;
      var URL: OleVariant);
    begin
      vUpdating := False;
    end;procedure TForm11.wb1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    begin
      vUpdating := True;
    end;procedure TForm11.wb1StatusTextChange(ASender: TObject; const Text: WideString);
    begin
      vStatusText := Text;
    end;end.
      

  2.   


    可以找一下第三方的webbrowser控件,功能强大些
      

  3.   


    我用 delphi XE3 也是会报这样的问题,问题还是解决不了
      

  4.   

    把Slient属性设为True就不会弹出脚本错误的信息了。
      

  5.   

    要重载 IOleCommandTarget
    delphi版:
    http://stackoverflow.com/questions/5450514/webbrowser-msie-capture-js-errors-using-exec-of-iolecommandtargetatl版:
    http://flagspot.diandian.com/post/2012-11-09/40041742398
    http://smartgeek.iteye.com/blog/1977974