Chinaunix首页 | 论坛 | 博客
  • 博客访问: 235456
  • 博文数量: 27
  • 博客积分: 863
  • 博客等级: 准尉
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-22 01:49
文章分类

全部博文(27)

文章存档

2012年(2)

2011年(25)

我的朋友

分类: WINDOWS

2011-12-30 18:37:00

如果是外链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) |
给主人留下些什么吧!~~