苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4192|回复: 3

[其他] c#中webbrowser阻止弹出新窗口

[复制链接]
发表于 2013-9-13 12:46:18 | 显示全部楼层 |阅读模式
网上看到很多人都会写webbrowser阻止弹出新窗口的方法是
  1. private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
  2.         {
  3.             e.Cancel = true;
  4. }
复制代码
但是我设置后,在写程序的机器上运行exe,如果不打开默认浏览器,访问http://www.aipai.com/c16/PzgkICUrJCVqJWQrKQ.html 不会弹出新窗口,如果打开默认浏览器,默认浏览器就会被弹出广告,再别的机子上,不管是否打开默认浏览器,都会弹出新窗口
不知道怎么解决



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-13 13:11:13 | 显示全部楼层
[code=csharp]private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
        {
                string url = ((System.Windows.Forms.WebBrowser)sender).StatusText;
                webBrowser1.Navigate(url);
                e.Cancel = true;
            
        }[/code]
 楼主| 发表于 2013-9-13 13:28:15 | 显示全部楼层

你这样操作就等于让它在当前窗口执行了吧?我意思是还是保留原来的页面,没有新页面弹出

发表于 2013-9-13 13:36:40 | 显示全部楼层
这个分两种一种是JS弹窗一种是A标签,net4.0我感觉解决的还行,2.0里好些是屏蔽不了的。比较麻烦需要调用Dll文件
有些是和浏览器版本和配置有关系,比如复杂,只能做到大部分可以
[code=csharp]webBrowser1.Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
        void Window_Error(object sender, HtmlElementErrorEventArgs e)
        {
            e.Handled = true;
        }[/code]
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-28 11:12

© 2014-2021

快速回复 返回顶部 返回列表