webbrowser禁止弹出对话框,用什么方法

解决方案 »

  1.   

    如果是不显示警告窗体,那就是设置为silent的模式即可。
      

  2.   

    禁止弹出的对话框需要重载WebBrowser,然后实现一个IDocHostShowUI接口,该接口中有一个ShowMessage方法
    直接写上
    Result := S_OK;
    就可以了,这样就可以屏蔽弹出的对话框,如果返回s_ok表示使用自己定义的处理方式处理,返回s_false标识使用
    系统默认的处理方式,具体的,楼主可以看看这里
    Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法:
    http://blog.csdn.net/suiyunonghen/archive/2009/03/05/3959322.aspx
      

  3.   

    IE最终也是调用MessageBox函数,你可以用API HOOK此函数屏蔽
      

  4.   

    不得闲,你所采用的方法仅对JS脚本弹出的对话框有效。如果网页采用VBScript语言中的MsgBox弹出的对话框,不能屏蔽。目前我用是在网页中插入一段网页源码来实现让对话框弹不出的。希望楼主再加些分来表示对问题的重视。
      

  5.   

    我是直接用三方控件EmbeddedWB,新手适合,简便!
      

  6.   

    还是用这个方法吧.比较见效:1>先声明一个boolean全局变量
      
     var cut_true:Boolean= False;    //delphi7 是可以这样声明的,其它版本不一定行,该变量主要用来防止窗体在创建时与下面webbrowser写入时冲突,产生报错.2>在窗体onshow事件中给cut_true 变量赋值
      cut_true := true;3>在webbrowser 的 BeforeNavigate2事件里加入如下代码即可:     try
          if cut_true = True then
          wb1.OleObject.Document.Writeln('<script language="JavaScript">functionshowModalDialog{return; }</script>')
         except
         end;oooooooookkkkkkkkkkkkkkkkkkkkk!!!!!