zoukankan      html  css  js  c++  java
  • webbrowser访问网站禁止弹窗

    用webbrowser访问网站时,如果网站有alert,window.open之类的JS,会在桌面上出现弹出框,并且必须点掉才会完成访问.
    我在网上找了屏蔽这些弹出框的方法,就是添加事件Navigated,在里面重新定义这些函数.像下面这样


    WebBrowser wbWebBrowser = new WebBrowser();
    wbWebBrowser.Navigated += new WebBrowserNavigatedEventHandler(wbWebBrowser_Navigated);
    ......

    private void wbWebBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) //屏蔽alert等弹框弹窗的情况
    {
    WebBrowser wbWebBrowser = (WebBrowser)sender;
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("function alert(){return;}");
    sb.AppendLine("function confirm(){return;}");
    sb.AppendLine("function showModalDialog(){return;}");
    sb.AppendLine("function window.open(){return;}");
    sb.AppendLine("function prompt(){return;}");
    string strJS = sb.ToString();
    IHTMLWindow2 win = (IHTMLWindow2)wbWebBrowser.Document.Window.DomWindow;
    win.execScript(strJS, "Javascript");
    win = null;
    }

     我在自己电脑上试的时候发现确实有效果,不加的话访问有弹出框的网站就会弹出内容.加了以后就不会弹出,可以正常访问完成了.

    但把生成的EXE文件放到别人电脑上,他们运行之后都依然会弹出提示框.并且他们装的系统,和配置,跟我自己电脑上的好像也都差不多.

    目前我测试发现的规律是,似乎安装了visual studio的电脑就会像我自己电脑一样不弹窗,没安装的就会弹,即使他们装了.net framework也是会弹窗的.

    请问这是什么原因呢

    我知道原因了,原来是安装了.NET SDK的机器上自带Microsoft.mshtml.dll.
    只安装了.NET framework的机器上没有,需要把
    C:Program FilesMicrosoft.NETPrimary Interop AssembliesMicrosoft.mshtml.dll
    放到和EXE文件同一目录下,才可以

  • 相关阅读:
    express如何使用cors插件、body-parser插件
    如何让xshell关闭后依然运行node项目
    nuxt命令和部署
    Python—函数的名称空间
    Python—生成器
    Python—闭包
    Python入门-字符串常用方法
    Python入门-函数
    Python入门-文件操作
    Python入门-三级菜单
  • 原文地址:https://www.cnblogs.com/mybabyyh/p/4532100.html
Copyright © 2011-2022 走看看