• 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文件同一目录下,才可以

  • 相关阅读:
    关系型数据库——主键&外键的
    JSON运用——PHP中使用json数据格式定义字面量对象的方法
    JSON.parse与eval的区别
    css中那些属性可以被继承
    js笔记 -- toString() 和String()
    MYSQL IFNULL函数的使用
    mysql临时表产生的执行效率问题改进(转)
    mysql中concat 和 group_concat()的用法
    转载mysql数据库配置优化
    浅谈MySql的存储引擎(转)
  • 原文地址:https://www.cnblogs.com/mybabyyh/p/4532100.html
Copyright © 2020-2023  润新知