阅读:1466回复:2
BlockSite.uc.js失效了,麻烦哪位大侠修一下,谢谢!
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); |
|
1楼#
发布于:2016-11-19 11:21
为什么不用host
|
|
2楼#
发布于:2016-11-19 11:26
开代理就用不了Hosts了
|
|