如果是外链JS脚本,很简单,可以直接在Adblock Plus中过滤JS脚本的URL。
如果是网页内嵌的JS脚本,有3个方法可供选择。
1. 使用ABP新功能阻止弹出窗口
||^$popup
意思就是阻止所有会打开abc.com这个网站的弹窗。
about:blank^$popup,domain=cba.com
以cba.com为主域名的所有页面,不得产生弹窗。
在过滤时,会有白光一闪而过。这是由于工作原理,先是载入about:blank
也就是空白页面(白光来源),然后在发送接收请求之前,用ABP自己的拦截请求功能予以阻止,所以这个弹窗阻止功能还比较初级,利用的是FF自己拦截请求
的功能实现,所以会有这个副作用。更完美的功能不是无法实现,但ABP本身核心必须做出改进。
|http://$image,third-party,popup,domain=cba.com
过滤cba.com里的弹出窗口,第三方脚本等等。
2. 使用Greasemonkey阻止网页内的弹出窗口JS脚本
例如网页内有如下内嵌弹出窗口脚本
首先,安装Greasemonkey(参考),到Firefox Add-ons官网 ,搜索Greasemonkey,点击安装。
然后,安装后重启Firefox,点击菜单栏中的“工具”--> "Greasemonkey" --> "New User Script...",创建一个新的GM脚本,在"New User Script..."对话框中:
Name: 给GM脚本取了名字,例如no_popup
Namespace: 无所谓,随便写几个字符串,一般是GM脚本的下载地址
Description: 无所谓,说明一下这个GM脚本的用处
Includes: 指定在哪些网页运行这个GM脚本,可以使用通配符,例如允许所有网页就是*,如果允许sohu.com就是http://*.sohu.com/*
Excludes: 指定不在哪些网页运行这个GM脚本,例如不在sina.com运行就是http://*.sina.com/*
点击OK后,进入GM脚本编辑,很简单只需要写入两行东西
unsafeWindow.popup = function () {
var sorryMsg = "This souldn't appear because Greasemonkey can divide by zero.";
};
上面2行可以简单的理解为替代网页中原来的popup函数。
那么整个GM脚本看上去是这样的:
// ==UserScript==
// @name no_popup
// @namespace localhost
// @description Replace the popup() function
// @include *
// @exclude http://*.sina.com/*
// ==/UserScript==
unsafeWindow.popup = function () {
var sorryMsg = "This souldn't appear because Greasemonkey can divide by zero.";
};
3. 使用Adblock plus pop-up addon
阅读(12026) | 评论(0) | 转发(0) |