LeoShone
小狐狸
小狐狸
  • UID7490
  • 注册日期2005-07-21
  • 最后登录2020-12-13
  • 发帖数61
  • 经验50枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
阅读:1246回复:2

BlockSite.uc.js失效了,麻烦哪位大侠修一下,谢谢!

楼主#
更多 发布于:2016-11-19 08:59
BlockSite.uc.js失效了,麻烦哪位大侠修一下,谢谢!


//@author slimx
//@ version 4/14
var BlockSite =
{
    blockedLocationsArray:[
            //在此添加不想访问的地址,支持通配符*,例如:
            //"*domain.com","http://www.foo.net",

            ],

        checkArrayR: function(arr, value)
        {
                for (var i=0; i < arr.length; i++)
                {
                        var regexp = convert2RegExp(arr);
                        if(regexp)
                        {
                                if(regexp.test(value))
                                {
                                        return true;
                                }
                        }
                }
  
                return false;
        },

        //弹出阻止提示
        showBlockWarningBar: function()
        {
        var nb = gBrowser.getNotificationBox();
        nb.appendNotification("\u7f51\u7ad9\u88ab\u7981\u6b62\u8bbf\u95ee",undefined,undefined,undefined,undefined);//网站被禁止访问
        },
      
        checkLocation: function(location)
        {
        if(this.checkArrayR(this.blockedLocationsArray, location))return true;
        }
}


var BlockSiteObserver =
{
        observe: function(aSubject, aTopic, aData)
        {
                if (aTopic != 'http-on-modify-request')
                        return;

                aSubject.QueryInterface(Components.interfaces.nsIHttpChannel);

                        if (BlockSite.checkLocation(aSubject.URI.spec))//验证
                        {
                                BlockSite.showBlockWarningBar();//弹出提示
                                aSubject.cancel(Components.results.NS_ERROR_FAILURE);//放弃加载
                        }
        },

        QueryInterface: function(iid)
        {
                if (!iid.equals(Components.interfaces.nsISupports) &&
                !iid.equals(Components.interfaces.nsIObserver))
                throw Components.results.NS_ERROR_NO_INTERFACE;

                return this;
        }
};

function convert2RegExp(pattern)
{
        var res = "";

        if (/^\/.*\/$/.test(pattern))  // pattern is a regexp already
                res = pattern.substr(1, pattern.length - 2);
        else
        {
                res = pattern.replace(/\*+/g, "*");        // (1)
                res = res.replace(/(\W)/g, "\\$1");         // (2)
                res = res.replace(/\\\*/g, ".*");            // (3)
                res = res.replace(/^\\\|/, "^");        // (4)
                res = res.replace(/\\\|$/, "$");        // (5)
                //res = res.replace(/^(\.\*)/,"");        // (6)
                //res = res.replace(/(\.\*)$/,"");        // (7)
        }

        try
        {
                return new RegExp('^' + res, "i");
        }
        catch(error)
        {
                return false;
        }
}

var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(BlockSiteObserver, "http-on-modify-request", false);

window.addEventListener("unload", function() {
  observerService.removeObserver(BlockSiteObserver, "http-on-modify-request");
}, false);
LeoShone
小狐狸
小狐狸
  • UID7490
  • 注册日期2005-07-21
  • 最后登录2020-12-13
  • 发帖数61
  • 经验50枚
  • 威望0点
  • 贡献值26点
  • 好评度1点
1楼#
发布于:2016-11-19 11:26
开代理就用不了Hosts了
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
2楼#
发布于:2016-11-19 11:21
为什么不用host
游客

返回顶部