webBrowser阻止弹出广告,求解答…

sodisla 2012-12-25 02:13:41
如该网站:http://www.cncrk.com/downinfo/29270.html每次都弹出IE广告,
怎么也不能阻止,甚至直接用NewWindow事件e.Cancel=true;
但还是无法阻止,望大家能给我解答下,谢谢……
...全文
402 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
sodisla 2013-01-29
  • 打赏
  • 举报
回复
有没有大侠能帮忙解决下!!!
sodisla 2013-01-07
  • 打赏
  • 举报
回复
广告就是让人厌恶!
sodisla 2013-01-05
  • 打赏
  • 举报
回复
引用 23 楼 weng12 的回复:
引用 13 楼 sodisla 的回复:引用 12 楼 weng12 的回复:引用 7 楼 sodisla 的回复:引用 6 楼 weng12 的回复:我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。 如果替换掉targe……
可以说我更在意的是为什么NewWindow事件的e.Cancel=true;不能阻止调用IE弹出广告!!!
weng12 2013-01-05
  • 打赏
  • 举报
回复
引用 13 楼 sodisla 的回复:
引用 12 楼 weng12 的回复:引用 7 楼 sodisla 的回复:引用 6 楼 weng12 的回复:我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。 如果替换掉target="_blank",那么广告就会在we……
我上面有说针对一个站点的原则,若是多站点,这个是暂时没有办法解决,不过你可以参考一些安全卫士的做法,使用规则库,不过这类基本上只能阻止特定的一部分广告。就好比是之前的杀毒软件采用特征码形式去操作,要完全都去阻止,这个很难,可以说几乎不可能。
sodisla 2012-12-28
  • 打赏
  • 举报
回复
没人知道怎么解决吗?
sodisla 2012-12-27
  • 打赏
  • 举报
回复
引用 18 楼 njw1028 的回复:
引用 17 楼 sodisla 的回复:引用 16 楼 lyq8376 的回复:e.Cancel=true; 是表示可以取消,并没有执行取消操作 但是这个e.Cancel=true;确实是可以取消弹出窗口的啊,为什么那些广告不受其限制呢?广告是js直接document.write到页面上面的,并没有新窗体产生啊
恩,这个我知道,我说的是加载网页时弹出窗体外的那种调用IE的广告,按理说:e.Cancel=true;是可以取消这种弹出窗体广告的,怎么就没用呢?
sodisla 2012-12-27
  • 打赏
  • 举报
回复
引用 20 楼 happySnow_zhe 的回复:
要沉了啊……
多谢~
weng12 2012-12-26
  • 打赏
  • 举报
回复
引用 7 楼 sodisla 的回复:
引用 6 楼 weng12 的回复:我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。 如果替换掉target="_blank",那么广告就会在webbrowser中加载了啊,这个还是没有解决问题,且对于JS代码我该如何区分……
服了你了,广告一般是JS文件,我只是说我操作过直接替换target,道理是一样的,你把广告的js替换掉就解决问题了,就这么简单。8楼的代码值得参考一下。
sodisla 2012-12-26
  • 打赏
  • 举报
回复
引用 10 楼 liuqian4243 的回复:
换浏览器试试看了.
webBrowser是基于IE的,这个不能换浏览器吧……
Ny-6000 2012-12-26
  • 打赏
  • 举报
回复
换浏览器试试看了.
njw1028 2012-12-26
  • 打赏
  • 举报
回复
引用 17 楼 sodisla 的回复:
引用 16 楼 lyq8376 的回复:e.Cancel=true; 是表示可以取消,并没有执行取消操作 但是这个e.Cancel=true;确实是可以取消弹出窗口的啊,为什么那些广告不受其限制呢?
广告是js直接document.write到页面上面的,并没有新窗体产生啊
sodisla 2012-12-26
  • 打赏
  • 举报
回复
引用 8 楼 njw1028 的回复:
想要完全屏蔽,恐怕要维护一些规则进来。譬如广告的iframe,广告的js等等。 下面仅列出适合上述url的规则,不全面,仅参考 C# code?12345678910111213141516171819202122 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDo……
这样或许对单个网站有用,多个该怎么办?另外为什么我在NewWindow事件中取消弹出窗口广告还是会弹出来呢?
sodisla 2012-12-26
  • 打赏
  • 举报
回复
引用 16 楼 lyq8376 的回复:
e.Cancel=true; 是表示可以取消,并没有执行取消操作
但是这个e.Cancel=true;确实是可以取消弹出窗口的啊,为什么那些广告不受其限制呢?
  • 打赏
  • 举报
回复
e.Cancel=true; 是表示可以取消,并没有执行取消操作
sodisla 2012-12-26
  • 打赏
  • 举报
回复
引用 14 楼 lyq8376 的回复:
直接结贴吧,没有过滤规则的话,程序里是过滤不了弹出广告的
我更在意的是为什么我在NewWindow事件中e.Cancel=true;还是不能阻止新窗体弹出,e.Cancel=true;不是取消新窗体事件吗?
  • 打赏
  • 举报
回复
直接结贴吧,没有过滤规则的话,程序里是过滤不了弹出广告的
sodisla 2012-12-26
  • 打赏
  • 举报
回复
引用 12 楼 weng12 的回复:
引用 7 楼 sodisla 的回复:引用 6 楼 weng12 的回复:我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。 如果替换掉target="_blank",那么广告就会在webbrowser中加载了啊,这个还是没……
大哥,你好象还没理解我的意思,还是你想得太简单了,上面我举的那个网址只是个例子,如果是很多个,我每个都去那样判断?这不现实!另外,不是页面中所有的JS都是广告,都没有用,我上面也问过了,你在程序里该怎么区分哪些JS是广告?
njw1028 2012-12-25
  • 打赏
  • 举报
回复
想要完全屏蔽,恐怕要维护一些规则进来。譬如广告的iframe,广告的js等等。 下面仅列出适合上述url的规则,不全面,仅参考
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            HtmlElementCollection hec = webBrowser1.Document.GetElementsByTagName("iframe");
            // 屏蔽对联浮动广告
            foreach (HtmlElement he in hec)
            {
                he.Style = "display: none;";
            }
            // 屏幕右下角广告
            hec = webBrowser1.Document.GetElementsByTagName("script");
            foreach (HtmlElement he in hec)
            {
                if (he.GetAttribute("src") == "http://code.37cs.com/rich/fl.php?uid=11285&pid=4101")
                {
                    he.SetAttribute("src", "");
                }
            }
            if (webBrowser1.Document.GetElementById("ShowDIV") != null)
            {
                webBrowser1.Document.GetElementById("ShowDIV").Style = "display: none;";
            }
        }
sodisla 2012-12-25
  • 打赏
  • 举报
回复
引用 6 楼 weng12 的回复:
我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。
如果替换掉target="_blank",那么广告就会在webbrowser中加载了啊,这个还是没有解决问题,且对于JS代码我该如何区分哪些是需要的,那些是广告呢?
weng12 2012-12-25
  • 打赏
  • 举报
回复
我一般常用的就是替换代码。比如有些链接是弹出的,在wb里面就会在新页打开,所以我一般都会把里面的target="_blank" 替换掉。广告一般是js,直接替换核心的代码,甚至直接过滤广告就可以了。
加载更多回复(5)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧