本站不兼容 8 以前的版本的 Interner Explorer 浏览器(或基于这些版本的 IE 的其他浏览器),并且页面样式不完全兼容 IE 8,我们建议你升级至 IE 9 或改用其他非 IE 浏览器

Mozest™

  • 正在加载用户菜单…

开放、分享、互助

转播到腾讯微博
返回列表 回复 发帖

[交流] 关于ABP新功能——阻止弹窗的试用

本帖最后由 congxz6688 于 2011-10-9 19:24 编辑

Adblock Plus 1.3.11a.3162 开始加入POPUP功能,阻止弹窗的产生。
这里有介绍:http://adblockplus.org/developme ... up-blocking-support


这两天放假,我小试了一下。
以这个网页为例:http://www.rmdown.com/link.php?h ... 69ff8020aca20b69cb8
这是一个种子下载页,一按按钮就会弹出三个新的广告页。

ABP的反POPUP新功能,规则有两种写法,一种是针对产生的新页面,规则如下:
  1. ||www.aaa.com^$popup
复制代码
这种写法的作用是,所有产生弹出页面www.aaa.com的动作都被阻止。

另一种,是针对弹窗产生的源页面的,规则如下:
  1. about:blank^$popup,domain=bbb.com
复制代码
其含意是,以bbb.com为主域名的所有页面,不得产生弹窗。
其实写成这种也是可以的:
  1. *^$popup,domain=bbb.com
复制代码
但它会显示为慢规则,而且在“可过滤项目”中其默认地址也是about:blank,所以我就改成上面的规则,发现也能正常使用。

添加规则
  1. about:blank^$popup,domain=rmdown.com
复制代码
上例页面中的按钮将不会再引发弹窗。OK。

不用这条规则,逐一加入三个目标弹窗的规则,也能起到同样的效果。
请大家帮忙,把本站加入ABP白名单
多谢楼主,教程很简单明了;
试了下成功阻止弹窗。
越来越强大
楼主发这种链接没问题吗?

果然是CL混出来的~~
我是来看举例网页的
不想当伸手党的伸手党。
奇怪:
1 点击安装后弹出的没有3个广告。
弹出  1种子下载狂 2正在转向草X网站(然后这个网站自动转到聊天注册页面)

2 使用楼主的代码
  1. about:blank^$popup,domain=rmdown.com
复制代码
没有任何效果,点击按钮后还是上面的情况。
3 使用规则
  1. ||t.happyfree.info^$popup
复制代码
后,2的正在转向草X网站,这个网页会闪过,然后自动关闭。弹出种子下载框。这样打开再自动关闭的效果就变得不是很好了。不会打开这个弹出网页才完美。

从3来看,楼主说的设置教程就变得不对了,不解。
还有个疑问就是对于右下角小窗口,有没有作用呢?POPUP扩展对于右下角的小窗口是没有拦截效果的。

ABP 1.3.11a.3179
楼主发这种链接没问题吗?

果然是CL混出来的~~
tyjk 发表于 2011-10-9 19:48
喂喂!别处你让我去哪里找弹窗?
请大家帮忙,把本站加入ABP白名单
本帖最后由 congxz6688 于 2011-10-9 22:12 编辑
奇怪:
1 点击安装后弹出的没有3个广告。
弹出  1种子下载狂 2正在转向草X网站(然后这个网站自动转到聊天注册页面)

2 使用楼主的代码about:blank^$popup,domain=rmdown.com没有任何效果,点击按钮后还是上面的情 ...
royallin 发表于 2011-10-9 21:47
奇怪啊,我昨天用的时候,还能打开三个页面。
刚刚看到你的回帖,再去试,只会打开两个页面。而且是首次两个,以后都是一个。
另外,规则在我这里有效啊。
你那里*^$popup,domain=rmdown.com有效吗?
另外,关于右下角的小窗,我还没有遇到过。不知哪里有啊。
请大家帮忙,把本站加入ABP白名单
看到rm好亲切啊
本帖最后由 bobnemo 于 2011-10-9 23:09 编辑

1# congxz6688
原来楼主也是cler啊,这个问题我早解决啦 在脚本里排除网址即可。(脚本是adblock-chinalist官网给的)
下面是我修改的,附加了几个淫民常用到的网站
// @include http://www.jandown.com/*
// @include http://www.rmdown.com/*
// @include http://www.xunfs.com/*
// @include http://alibt.info/*
  1. // ==UserScript==
  2. // @name blockPopupWindow
  3. // @namespace https://code.google.com/p/adblock-chinalist/
  4. // @description          阻止弹窗 disable pop windows (only for Scriptish)
  5. // @include http://www.jandown.com/*
  6. // @include http://www.rmdown.com/*
  7. // @include http://www.xunfs.com/*
  8. // @include http://alibt.info/*
  9. // @author Gythialy
  10. // @version 1.0.0
  11. // @run-at document-start
  12. // ==/UserScript==
  13. (function() {
  14.         document.addEventListener("beforescriptexecute", function(e) {
  15.                                 if (e.target.innerHTML.indexOf('window.open') != -1) {
  16.                                         e.stopPropagation();
  17.                                         e.preventDefault();
  18.                                 }
  19.                         }, false);
  20. })();
复制代码
再赠送你一个
75bt点info(大家懂的)
附件: 您所在的用户组无法下载或查看附件
......
一直用这个,再也没见过弹窗,也不用去维护@include列表。
  1. // ==UserScript==
  2. // @name            blockPopupWindow
  3. // @namespace       http://www.czcp.co.cc/blockPopupWindow.user.js
  4. // @description     阻止弹窗
  5. // @include         http*
  6. // @author          zbinlin
  7. // @homepage        http://www.czcp.co.cc
  8. // @version         0.0.2 添加 中国电信(广东)弹窗广告直接过滤
  9. // @version         0.0.1
  10. // @run-at          document-start
  11. // ==/UserScript==

  12. document.addEventListener("beforescriptexecute", function (e) {
  13.     document.removeEventListener("beforescriptexecute", arguments.callee, false);
  14.     var win = window.wrappedJSObject;
  15.     win.Fopen = win.open;
  16.     win.open = function () {
  17.         var args = Array.slice(arguments);
  18.         var domain = document.domain;
  19.         // 过滤中国电信(广东)弹窗广告
  20.       //  if (args[0].indexOf("http://gd.ct10000.com") == 0) return null;
  21.         // 同域名或同一主机下的弹窗不阻止
  22.         var result = args[0][0] == "\/" || args[0].match(/^(http(s)?:\/\/)?[^/]*/)[0].indexOf(domain) != -1;
  23. //        if (!result) {
  24. //            try {
  25. //                // 提示是否阻止弹窗
  26. //                result = win.confirm("是否允许弹窗!\n" + args[0]);
  27. //            } catch (ex) {
  28. //                result = false;
  29. //            }
  30. //        }
  31.         if (result) {
  32.             return win.Fopen.apply(this, args);
  33.         }
  34.         return null;
  35.     };
  36. }, false);
复制代码
1

评分次数

  • congxz6688

我的回帖都是滥竽充数的,有其它人回帖时一般可以无视我哈~~
1# congxz6688
原来楼主也是cler啊,这个问题我早解决啦 在脚本里排除网址即可。(脚本是adblock-chinalist官网给的)
下面是我修改的,附加了几个淫民常用到的网站
// @include http://www.jandown.com/*
// @inc ...
bobnemo 发表于 2011-10-9 23:04
不知道是不是Greasemonkey对@run-at支持不够还是怎么的,脚本在我这里效果不好。
请大家帮忙,把本站加入ABP白名单
使用uc脚本PopupTerminater,进入楼主给出的测试页点击按钮,没有弹窗出现
奇怪啊,我昨天用的时候,还能打开三个页面。
刚刚看到你的回帖,再去试,只会打开两个页面。而且是首次两个,以后都是一个。
另外,规则在我这里有效啊。
你那里*^$popup,domain=rmdown.com有效吗?
另外,关于右 ...
congxz6688 发表于 2011-10-9 22:02
  1. *^$popup,domain=rmdown.com
复制代码
上面的这个有效,效果等同于
  1. ||t.happyfree.info^$popup
复制代码
不过还是会先弹出再自动关闭,这样的处理机制不是很好。去给作者反馈吧。
其实用了noscript的话,那个弹窗就不会出现了:)
所以我也不太清除哪里有那些右下角弹窗的网站。
不过还是会先弹出再自动关闭,这样的处理机制不是很好。去给作者反馈吧。
royallin 发表于 2011-10-10 11:20
1L的链接作者博客就已经说了。还有更多缺点。如果你有看的话
我的回帖都是滥竽充数的,有其它人回帖时一般可以无视我哈~~
不过这个ABP版POPUP似乎可以禁住PopupTerminater所不能禁止的晋江弹窗广告
1L的链接作者博客就已经说了。还有更多缺点。如果你有看的话
dindog 发表于 2011-10-10 13:39
没看。。。,希望快点完善吧。还有提交的那个修改替换网页代码拦截功能到现在一点苗头都没有。
12# dindog

脚本中关于domain的定义不够好。
比如百度首页上的各贴吧快捷方式就被拦阻了。
按目前定义,domain==www.baidu.com
而tieba.baidu.com也被阻止了。

修改如下:
修改
  1. var domain = document.domain;
复制代码
  1.         var domains = document.domain.split(".");
  2.         switch (domains.length){
  3.                 case 4:
  4.                         domain=domains[domains.length-3]+"."+domains[domains.length-2]+"."+domains[domains.length-1];
  5.                 break;
  6.                 case 3:
  7.                         domain=domains[domains.length-2]+"."+domains[domains.length-1];
  8.                 break;
  9.                 default:
  10.                         domain=document.domain;
  11.         }
复制代码
请大家帮忙,把本站加入ABP白名单
在163博客试了一下,发现不能阻挡右下角的弹窗
在163博客试了一下,发现不能阻挡右下角的弹窗
xindeshenhua 发表于 2011-11-4 01:05
你可能要分清楚什麼叫pop-up
楼主啊,我可耻的下了你的种子。。。
本帖最后由 iwo0 于 2011-12-24 13:04 编辑

楼上+1
没什么的!XO不过是我们X生活和生命中的一部分啊?
ps:1024,此贴必火
ps1:剪刀浆糊了下楼上 12# dindog 19# congxz6688 两位的脚本
  1. // ==UserScript==
  2. // @name            blockPopupWindow
  3. // @namespace       http://www.czcp.co.cc/blockPopupWindow.user.js
  4. // @description     阻止弹窗
  5. // @include         http*
  6. // @author          zbinlin
  7. // @homepage        http://www.czcp.co.cc
  8. // @version         0.0.2 添加 中国电信(广东)弹窗广告直接过滤
  9. // @version         0.0.1
  10. // @run-at          document-start
  11. // ==/UserScript==

  12. document.addEventListener("beforescriptexecute", function (e) {
  13.     document.removeEventListener("beforescriptexecute", arguments.callee, false);
  14.     var win = window.wrappedJSObject;
  15.     win.Fopen = win.open;
  16.     win.open = function () {
  17.         var args = Array.slice(arguments);
  18.         var domains = document.domain.split(".");
  19.         switch (domains.length){
  20.                 case 4:
  21.                         domain=domains[domains.length-3]+"."+domains[domains.length-2]+"."+domains[domains.length-1];
  22.                 break;
  23.                 case 3:
  24.                         domain=domains[domains.length-2]+"."+domains[domains.length-1];
  25.                 break;
  26.                 default:
  27.                         domain=document.domain;
  28.         }
  29.         // 过滤中国电信(广东)弹窗广告
  30.       //  if (args[0].indexOf("http://gd.ct10000.com") == 0) return null;
  31.         // 同域名或同一主机下的弹窗不阻止
  32.         var result = args[0][0] == "\/" || args[0].match(/^(http(s)?:\/\/)?[^/]*/)[0].indexOf(domain) != -1;
  33. //        if (!result) {
  34. //            try {
  35. //                // 提示是否阻止弹窗
  36. //                result = win.confirm("是否允许弹窗!\n" + args[0]);
  37. //            } catch (ex) {
  38. //                result = false;
  39. //            }
  40. //        }
  41.         if (result) {
  42.             return win.Fopen.apply(this, args);
  43.         }
  44.         return null;
  45.     };
  46. }, false);
复制代码