c#调用webbrowser,屏蔽js弹窗代码,同时发布exe后仍旧出现弹窗解决办法
2013-04-26 12:38
711 查看
用webbrowser访问网站时,如果网站有alert,window.open之类的JS,会在桌面上出现弹出框,并且必须点掉才会完成访问.
我在网上找了屏蔽这些弹出框的方法,就是添加事件Navigated,在里面重新定义这些函数.
我在自己电脑上试的时候发现确实有效果,不加的话访问有弹出框的网站就会弹出内容.加了以后就不会弹出,可以正常访问完成了.
但把生成的EXE文件放到别人电脑上,他们运行之后都依然会弹出提示框.并且他们装的系统,和配置,跟我自己电脑上的好像也都差不多.
目前我测试发现的规律是,似乎安装了visual studio的电脑就会像我自己电脑一样不弹窗,没安装的就会弹,即使他们装了.net framework也是会弹窗的.
上述问题的解决办法:
原来是安装了.NET SDK的机器上自带Microsoft.mshtml.dll.只安装了.NET framework的机器上没有,需要把C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll放到和EXE文件同一目录下,才可以
我在网上找了屏蔽这些弹出框的方法,就是添加事件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 Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll放到和EXE文件同一目录下,才可以
相关文章推荐
- C#代码调用js函数,js函数中的document.getElementById("对象ID")得null值解决办法
- .NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用
- C# 调用 Web Service 时出现 : 407 Proxy Authentication Required错误的解决办法
- C#项目编译报“LC.exe已退出,代码为-1错误”解决办法
- C#调用exe文件,IIS发布后无法掉用本地exe程序的解决方法
- C#调用exe文件,IIS发布后无法掉用本地exe程序的解决方法
- VS发布c# WPF项目时出现 签名错误 解决办法
- EasyJSWebView二次加载时JS无法调用原生代码解决办法
- 外部调用JS文件时出现中文乱码的解决办法
- 用WebBrowser承载视图,html编写页面,c#编写后端代码;用js调用后端代码,传入function参数作为回调;
- Unity3D中js与C#之间相互调用的解决办法
- C# webBrowser 屏蔽网页JS脚本错误弹窗
- C#发布程序时出现Signtool requires CAPICOM version 2.1.0.1 or higher错误的解决办法
- c#调用C/C++代码时出现的PInvokeStackImbalance异常实例及解决方式
- C# 调用C++ DLL 返回类型为字符的接口 出现异常 解决办法
- NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用
- Android 开发系列(3) - native代码调用java代码出现attempt using stale local reference错误及解决办法
- 我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- 调用discuz编辑器发布帖子显示html代码的解决办法