none
C# webbrowser处理SCRIPT提示的问题 RRS feed

  • 问题

  • 有段HTML代码如下:
    <span id="aa" onmouseover="this.style.cursor='pointer';">Lable1</span>
    <span id="bb">Lable2</span>
    <SCRIPT>(alert("欢迎光临!"));</SCRIPT>



    目前情况:当webbrowser加载完后,就直接弹出“欢迎光临”的提示框。

    问题:屏蔽这个提示框,这种情况怎样做呢?
    谢谢。。。。。。


    ***********
    2010年2月24日 16:06

答案

  • 1.

    引用名称空间using mshtml;
    右键解决方案资源管理器-》添加引用-》。NET-》Microsoft.mshtml

      private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {
                IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.DomWindow;
                string s = "window.alert = null;\r\nwindow.confirm = null;\r\nwindow.open = null;\r\nwindow.showModalDialog = null;";
                win.execScript(s, "javascript");
    
            }

    2.ScriptErrorsSuppressed属性设置true

    这两项同时设置,你试试,我这里是可以的



    努力+方法=成功
    • 已标记为答案 mick122 2010年2月26日 1:10
    2010年2月25日 7:27

全部回复

  • 你好!
         如果想屏蔽脚本错误,可以尝试把WebBrowser的ScriptErrorsSuppressed属性设置true.
    周雪峰
    2010年2月24日 16:45
    版主
  • void wb_NavigateComplete2(object pDisp, ref object URL)
            {
                mshtml.IHTMLDocument2 doc = (wb.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.IHTMLDocument2;
                doc.parentWindow.execScript("window.alert=null", "javascript"); 
               
    }
    参照:http://www.cnblogs.com/changyou/archive/2010/01/21/1653534.html
    努力+方法=成功
    2010年2月25日 0:37
  • 谢谢你!
    但我试过了。WebBrowser的ScriptErrorsSuppressed属性设置true无法解决这个问题呀!


    ***********
    2010年2月25日 6:07
  • 谢谢你的回复!

    我也试过你的方法,当webbrowser加载完,还是会弹出这个提示框!





    再说一下我的意思:
    在一个多Frame 的网页中,其中有一个Frame的内容开始时是没有内容的,在通过操作网页上的某些事件后,动态给那个Frame 设置了内容(如下)
    <span id="aa" onmouseover="this.style.cursor='pointer';">Lable1</span>
    <span id="bb">Lable2</span>
    <SCRIPT>(alert("欢迎光临!"));</SCRIPT>
    ,这样的话,浏览器就会弹出“欢迎光临”的提示框
    现在我就想在webbrowser实现关闭这个提示框,要怎样做呀?


    ***********
    2010年2月25日 6:18
  • 1.

    引用名称空间using mshtml;
    右键解决方案资源管理器-》添加引用-》。NET-》Microsoft.mshtml

      private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {
                IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.DomWindow;
                string s = "window.alert = null;\r\nwindow.confirm = null;\r\nwindow.open = null;\r\nwindow.showModalDialog = null;";
                win.execScript(s, "javascript");
    
            }

    2.ScriptErrorsSuppressed属性设置true

    这两项同时设置,你试试,我这里是可以的



    努力+方法=成功
    • 已标记为答案 mick122 2010年2月26日 1:10
    2010年2月25日 7:27
  • LS是对的,我放错地方了。。。

    谢谢开心,谢谢周雪峰
    ***********
    2010年2月26日 1:09