├── AwesomeBookmarkbar.uc.js ├── FeiRuoBackup.uc.js ├── FeiRuoMouse ├── 1.png ├── 2.png ├── 3.png ├── FeiRuoMouse.uc.js ├── README.md └── _FeiRuoMouse.js ├── FeiRuoNet ├── FeiRuoNet.uc.js ├── FeiRuoNet00.png ├── FeiRuoNet01.png ├── FeiRuoNet02.png ├── README.md └── lib │ ├── LocalFlags │ ├── AC.png │ ├── AD.png │ ├── AE.png │ ├── AF.png │ ├── AG.png │ ├── AI.png │ ├── AL.png │ ├── AM.png │ ├── AN.png │ ├── AO.png │ ├── AP.png │ ├── AQ.png │ ├── AR.png │ ├── AS.png │ ├── AT.png │ ├── AU.png │ ├── AW.png │ ├── AX.png │ ├── AZ.png │ ├── BA.png │ ├── BB.png │ ├── BD.png │ ├── BE.png │ ├── BF.png │ ├── BG.png │ ├── BH.png │ ├── BI.png │ ├── BJ.png │ ├── BM.png │ ├── BN.png │ ├── BO.png │ ├── BQ.png │ ├── BR.png │ ├── BS.png │ ├── BT.png │ ├── BV.png │ ├── BW.png │ ├── BY.png │ ├── BZ.png │ ├── CA.png │ ├── CD.png │ ├── CF.png │ ├── CG.png │ ├── CH.png │ ├── CI.png │ ├── CK.png │ ├── CL.png │ ├── CM.png │ ├── CN.png │ ├── CO.png │ ├── CR.png │ ├── CU.png │ ├── CV.png │ ├── CW.png │ ├── CX.png │ ├── CY.png │ ├── CZ.png │ ├── DE.png │ ├── DJ.png │ ├── DK.png │ ├── DM.png │ ├── DO.png │ ├── DZ.png │ ├── EC.png │ ├── EE.png │ ├── EG.png │ ├── ER.png │ ├── ES.png │ ├── ET.png │ ├── EU.png │ ├── FI.png │ ├── FJ.png │ ├── FK.png │ ├── FM.png │ ├── FO.png │ ├── FR.png │ ├── GA.png │ ├── GB.png │ ├── GD.png │ ├── GE.png │ ├── GF.png │ ├── GG.png │ ├── GH.png │ ├── GI.png │ ├── GL.png │ ├── GM.png │ ├── GN.png │ ├── GP.png │ ├── GQ.png │ ├── GR.png │ ├── GT.png │ ├── GU.png │ ├── GW.png │ ├── GY.png │ ├── HK.png │ ├── HM.png │ ├── HN.png │ ├── HR.png │ ├── HT.png │ ├── HU.png │ ├── ID.png │ ├── IE.png │ ├── IL.png │ ├── IM.png │ ├── IN.png │ ├── IO.png │ ├── IQ.png │ ├── IR.png │ ├── IS.png │ ├── IT.png │ ├── JE.png │ ├── JM.png │ ├── JO.png │ ├── JP.png │ ├── KE.png │ ├── KG.png │ ├── KH.png │ ├── KI.png │ ├── KM.png │ ├── KN.png │ ├── KP.png │ ├── KR.png │ ├── KW.png │ ├── KY.png │ ├── KZ.png │ ├── LA.png │ ├── LB.png │ ├── LC.png │ ├── LI.png │ ├── LK.png │ ├── LR.png │ ├── LS.png │ ├── LT.png │ ├── LU.png │ ├── LV.png │ ├── LY.png │ ├── MA.png │ ├── MC.png │ ├── MD.png │ ├── ME.png │ ├── MF.png │ ├── MG.png │ ├── MH.png │ ├── MK.png │ ├── ML.png │ ├── MM.png │ ├── MN.png │ ├── MO.png │ ├── MP.png │ ├── MQ.png │ ├── MR.png │ ├── MS.png │ ├── MT.png │ ├── MU.png │ ├── MV.png │ ├── MW.png │ ├── MX.png │ ├── MY.png │ ├── MZ.png │ ├── NA.png │ ├── NC.png │ ├── NE.png │ ├── NF.png │ ├── NG.png │ ├── NI.png │ ├── NL.png │ ├── NO.png │ ├── NP.png │ ├── NR.png │ ├── NU.png │ ├── NZ.png │ ├── OM.png │ ├── PA.png │ ├── PE.png │ ├── PF.png │ ├── PG.png │ ├── PH.png │ ├── PK.png │ ├── PL.png │ ├── PM.png │ ├── PR.png │ ├── PS.png │ ├── PT.png │ ├── PW.png │ ├── PY.png │ ├── QA.png │ ├── RE.png │ ├── RO.png │ ├── RS.png │ ├── RU.png │ ├── RW.png │ ├── SA.png │ ├── SB.png │ ├── SC.png │ ├── SD.png │ ├── SE.png │ ├── SG.png │ ├── SH.png │ ├── SI.png │ ├── SK.png │ ├── SL.png │ ├── SM.png │ ├── SN.png │ ├── SO.png │ ├── SR.png │ ├── SS.png │ ├── ST.png │ ├── SV.png │ ├── SX.png │ ├── SY.png │ ├── SZ.png │ ├── TC.png │ ├── TD.png │ ├── TG.png │ ├── TH.png │ ├── TJ.png │ ├── TK.png │ ├── TL.png │ ├── TM.png │ ├── TN.png │ ├── TO.png │ ├── TR.png │ ├── TT.png │ ├── TV.png │ ├── TW.png │ ├── TZ.png │ ├── UA.png │ ├── UG.png │ ├── UM.png │ ├── US.png │ ├── UY.png │ ├── UZ.png │ ├── V6.png │ ├── VA.png │ ├── VC.png │ ├── VE.png │ ├── VG.png │ ├── VI.png │ ├── VN.png │ ├── VU.png │ ├── WF.png │ ├── WS.png │ ├── YE.png │ ├── YT.png │ ├── ZA.png │ ├── ZM.png │ └── ZW.png │ ├── QQWry.dat │ ├── ShowIP.exe │ ├── _FeiRuoNet.js │ ├── _FeiRuoNetMenu.js │ ├── _FeiRuoNetProxy.json │ ├── ip4.cdb │ └── ip6.cdb ├── FeiRuoTabplus ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── FeiRuoTabplus.uc.js ├── README.md └── lib │ └── _FeiRuoTabplus.js ├── Img ├── 2.png └── 3.png ├── MouseGestures ├── MouseGestures.uc.js ├── README.md └── _mouseGestures.js ├── NoShowBorder.uc.js ├── QrCreator.uc.js ├── README.md ├── RefererChange ├── README.md ├── RefererChange.uc.js └── _refererChange.js ├── RuleS ├── README.md ├── RuleS.uc.js └── _RuleS.js ├── Saying ├── 1.gif ├── 1.png ├── 2.gif ├── 2.png ├── README.md ├── Saying.uc.js └── lib │ ├── Saying_Hitokoto.json │ ├── Saying_VeryCD.json │ ├── Saying_acman.json │ └── _Saying.js ├── StarUrlicon.uc.js ├── TabPlus.uc.js ├── UserAgentChange ├── README.md ├── UserAgentChanger.uc.js └── _userAgentChange.js ├── UserCSSLoader.uc.js ├── UserScriptLoaderPlus.uc.js ├── anoBtn ├── README.md ├── _anoBtn.js ├── anoBtn.png └── anoBtn.uc.js ├── bookmarkBtn.uc.js ├── bookmarkallmod.uc.js ├── showFlagS ├── 1.png ├── 2.png ├── 3.png ├── FlagFoxFlags24x16.png ├── FlagFoxFlags24x16.zip ├── FlagFoxFlags原版.png ├── FlagFoxFlags原版.zip ├── README.md ├── WorldIPFlags1.png ├── WorldIPFlags1.zip ├── WorldIPFlags2.png ├── WorldIPFlags2.zip ├── _showFlagS.js ├── countryflags.js └── showFlagS.uc.js ├── starClickMod.uc.js └── starClickMod40Up.uc.js /FeiRuoBackup.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name FeiRuoBackup.uc.js 3 | // @description 备份、整合和还原文件。 4 | // @author feiruo 5 | // @License Version: MPL 2.0/GPL 3.0/LGPL 2.1 6 | // @compatibility Firefox 45 7 | // @charset UTF-8 8 | // @include chrome://browser/content/browser.xul 9 | // @id [12FA3E5D] 10 | // @inspect window.FeiRuoBackup 11 | // @startup window.FeiRuoBackup.init(); 12 | // @shutdown window.FeiRuoBackup.onDestroy(); 13 | // @optionsURL about:config?filter=FeiRuoBackup. 14 | // @homepageURL https://www.feiruo.pw/ 15 | // @homepageURL https://github.com/feiruo/userChromeJS 16 | // @downloadURL https://github.com/feiruo/userChromeJS/FeiRuoBackup.uc.js 17 | // @note Begin 2016-07-25 18 | // @note 备份、整合和还原文件 19 | // @note 仅供个人测试、研究,作者不承担因使用此脚本对自己和他人造成任何形式的损失或伤害之任何责任。 20 | // @version 0.0.1 2016.07.25 17:00 Building。 21 | // ==/UserScript== 22 | (function() { 23 | let { 24 | classes: Cc, 25 | interfaces: Ci, 26 | utils: Cu, 27 | results: Cr 28 | } = Components; 29 | if (!window.FileUtils) Cu.import("resource://gre/modules/FileUtils.jsm"); 30 | const FileInputStream = Components.Constructor("@mozilla.org/network/file-input-stream;1", "nsIFileInputStream", "init"); 31 | const ConverterInputStream = Components.Constructor("@mozilla.org/intl/converter-input-stream;1", "nsIConverterInputStream", "init"); 32 | 33 | if (window.FeiRuoBackup) { 34 | window.FeiRuoBackup.onDestroy(); 35 | delete window.FeiRuoBackup; 36 | } 37 | var FeiRuoBackup = { 38 | Prefs: Services.prefs.getBranch("userChromeJS.FeiRuoBackup."), 39 | BackList: [ // 40 | { 41 | Path: "ProfD", //路径 UChrm ProfD and so on 42 | File: "user.js", //文件名 43 | Type: "line", //读取方式 line-按行读取、json-作为json、sandbox 44 | Backup: false, //是否备份 45 | BackupOn: 0, //备份选项:0-启动和关闭,1-启动,2-关闭 46 | Recover: true, //是否还原 47 | RecoverOn: 0, //还原选项:0-启动和关闭,1-启动,2-关闭 48 | ReadFunc: function(val) { //读取转换函数,仅 line 49 | var matcher = val.match(/(\/\/)?([ ]*)?(user_)?pref\(([^,]*),(.*)\);([ ]*)?(\/\/(.*))?/i); 50 | if (!matcher) return; 51 | return { 52 | Ignore: matcher[1] == "//" ? true : false, 53 | Pref: matcher[3] || "", 54 | Key: matcher[4], 55 | Val: matcher[5], 56 | Notes: matcher[8] 57 | }; 58 | }, 59 | ToStrFunc: function(FileData, BackData) { //转为字符串函数 60 | var List = FeiRuoBackup.CheckDuplicate((FileData || []).concat(BackData || []), "Key"); //内置去重函数 61 | var str = ""; 62 | for (var i in List) { 63 | if (!!List[i].Ignore) continue; 64 | var val = List[i].Val; 65 | str += List[i].Pref + 'pref(' + List[i].Key + ',' + val + ');' + (List[i].Notes ? (" // " + List[i].Notes) : "") + "\n"; 66 | } 67 | return str; 68 | } 69 | }, { 70 | Path: "ProfD", 71 | File: "logins.json", 72 | Type: "json", 73 | Backup: true, 74 | BackupOn: 0, 75 | Recover: true, 76 | RecoverOn: 0, 77 | ToStrFunc: function(FileData, BackData) { 78 | FileData = JSON.parse(FileData || '{"nextId": 1,"logins": [],"disabledHosts": [],"version": 1}'); 79 | BackData = JSON.parse(BackData || '{"nextId": 1,"logins": [],"disabledHosts": [],"version": 1}'); 80 | var NextId = FileData.nextId > BackData.nextId ? FileData.nextId : (BackData.nextId || FileData.nextId); 81 | var Logins = FileData.logins || BackData.logins || []; 82 | FileData.logins && (Logins = FeiRuoBackup.CheckDuplicate(FileData.logins.concat(BackData.logins))); 83 | var DisabledHosts = FileData.disabledHosts || BackData.disabledHosts || []; 84 | FileData.disabledHosts && (DisabledHosts = FeiRuoBackup.CheckDuplicate(FileData.disabledHosts.concat(BackData.disabledHosts))); 85 | return JSON.stringify({ 86 | nextId: NextId, 87 | logins: Logins, 88 | disabledHosts: DisabledHosts, 89 | version: FileData.version || 1 90 | }); 91 | } 92 | } 93 | ], 94 | init: function() { 95 | var StartupTime = new Date(); 96 | this.Debug = this.GetPrefs(0, "Debug", false); 97 | var ins = $("devToolsSeparator"); 98 | ins.parentNode.insertBefore($C("menuitem", { 99 | id: "FeiRuoBackup_set", 100 | label: "备份还原文件", 101 | type: "checkbox", 102 | autoCheck: "false", 103 | oncommand: "FeiRuoBackup.Toggle(event);" 104 | }), ins); 105 | this.LoadSetting(); 106 | this.Prefs.addObserver('', this.PrefsObs, false); 107 | window.addEventListener("unload", function() { 108 | FeiRuoBackup.onDestroy(FeiRuoBackup.Enable); 109 | }, false); 110 | }, 111 | onDestroy: function(isAlert) { 112 | if (isAlert) this.Combination(isAlert); 113 | if ($("FeiRuoBackup_set")) $("FeiRuoBackup_set").parentNode.removeChild($("FeiRuoBackup_set")); 114 | Services.appinfo.invalidateCachesOnRestart(); 115 | Services.obs.notifyObservers(null, "startupcache-invalidate", ""); 116 | }, 117 | PrefsObs: function(subject, topic, data) { 118 | if (topic == 'nsPref:changed') { 119 | switch (data) { 120 | case 'Debug': 121 | case 'Enable': 122 | FeiRuoBackup.LoadSetting(data); 123 | break; 124 | } 125 | } 126 | }, 127 | LoadSetting: function(type) { 128 | if (!type || type === "Debug") this.Debug = this.GetPrefs(0, "Debug", false); 129 | if (!type || type === "Enable") { 130 | this.Enable = this.GetPrefs(0, "Enable", true); 131 | this.Enable && this.Combination(); 132 | $("FeiRuoBackup_set") && $("FeiRuoBackup_set").setAttribute('checked', this.Enable); 133 | } 134 | }, 135 | Toggle: function(event) { 136 | this.Enable = !this.Enable; 137 | this.Prefs.setBoolPref("Enable", this.Enable); 138 | }, 139 | /*****************************************************************************************/ 140 | Combination: function(isAlert) { 141 | var OrgFile, BackFile, FileData, BackData, NewData; 142 | for (var i in this.BackList) { 143 | var Rule = this.BackList[i]; 144 | 145 | OrgFile = FileUtils.getFile(Rule.Path, [Rule.File]); 146 | BackFile = FileUtils.getFile("UChrm", ["Backups", Rule.File]); 147 | 148 | FileData = this.LoadFile(OrgFile, Rule.Type, Rule.ReadFunc); 149 | BackData = this.LoadFile(BackFile, Rule.Type, Rule.ReadFunc); 150 | 151 | if (FileData != BackData) { 152 | if (Rule.Backup) { 153 | NewData = Rule.ToStrFunc(FileData, BackData); 154 | if (Rule.BackupOn == 0 || (Rule.BackupOn == 1 && !isAlert) || (Rule.BackupOn == 2 && isAlert)) 155 | this.StrToFile(BackFile, NewData); 156 | } else 157 | NewData = Rule.ToStrFunc(BackData); 158 | 159 | if (Rule.Recover && (BackData && BackData != "")) { 160 | if (Rule.RecoverOn == 0 || (Rule.RecoverOn == 1 && !isAlert) || (Rule.RecoverOn == 2 && isAlert)) 161 | this.StrToFile(OrgFile, NewData); 162 | } 163 | } 164 | } 165 | }, 166 | CheckDuplicate: function(data, key) { 167 | if (!data) return; 168 | var obj = {}; 169 | var New = []; 170 | key = key || "id"; 171 | data.forEach(function(i) { 172 | switch (typeof i) { 173 | case 'object': 174 | if (!obj[i[key]]) { 175 | obj[i[key]] = true; 176 | New.push(i); 177 | } 178 | break; 179 | case 'string': 180 | if (!obj[i]) { 181 | obj[i] = true; 182 | New.push(i); 183 | } 184 | break; 185 | case 'undefined': 186 | break; 187 | default: 188 | break; 189 | } 190 | }); 191 | return New; 192 | }, 193 | /*****************************************************************************************/ 194 | LoadFile: function(aFile, type, func) { 195 | if (!aFile || !aFile.exists() || !aFile.isFile()) return log("File does not exist."); 196 | var fileStream = new FileInputStream(aFile, 0x01, 0444, 0); 197 | var stream = new ConverterInputStream(fileStream, "UTF-8", 16384, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); 198 | var data = ""; 199 | if (!type || type == "json" || type == "sandbox") { 200 | var str = {}; 201 | while (stream.readString(0xffffffff, str) != 0) { 202 | data += str.value; 203 | } 204 | try { 205 | data = decodeURIComponent(escape(data)); 206 | } catch (e) {} 207 | } 208 | if (type == "line") { 209 | stream = stream.QueryInterface(Ci.nsIUnicharLineInputStream); 210 | var line = {}; 211 | var val = ""; 212 | var cont; 213 | data = []; 214 | do { 215 | cont = stream.readLine(line); 216 | val = line.value; 217 | val = val.trim(); 218 | val = func(val); 219 | !!val && data.push(val); 220 | } while (cont); 221 | } 222 | stream.close(); 223 | if (type == "sandbox") { 224 | var sandbox = new Cu.Sandbox(new XPCNativeWrapper(window)); 225 | sandbox.Components = Components; 226 | sandbox.Cc = Cc; 227 | sandbox.Ci = Ci; 228 | sandbox.Cr = Cr; 229 | sandbox.Cu = Cu; 230 | sandbox.Services = Services; 231 | sandbox.locale = Services.prefs.getCharPref("general.useragent.locale"); 232 | try { 233 | var lineFinder = new Error(); 234 | Cu.evalInSandbox(data, sandbox, "1.8"); 235 | } catch (e) { 236 | let line = e.lineNumber - lineFinder.lineNumber - 1; 237 | var errmsg = 'Error: ' + e + "\n请重新检查【" + aFile.leafName + "】文件第 " + line + " 行"; 238 | log(errmsg); 239 | } 240 | data = sandbox || null; 241 | } 242 | return data; 243 | }, 244 | StrToFile: function(file, data) { 245 | var suConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 246 | suConverter.charset = 'UTF-8'; 247 | data = suConverter.ConvertFromUnicode(data); 248 | var foStream = Cc['@mozilla.org/network/file-output-stream;1'].createInstance(Ci.nsIFileOutputStream); 249 | foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); 250 | foStream.write(data, data.length); 251 | foStream.close(); 252 | }, 253 | GetPrefs: function(type, name, val) { 254 | switch (type) { //https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Preferences 255 | case 0: 256 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_BOOL) this.Prefs.setBoolPref(name, val ? val : false); 257 | return this.Prefs.getBoolPref(name); 258 | case 1: 259 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_INT) this.Prefs.setIntPref(name, val ? val : 0); 260 | return this.Prefs.getIntPref(name); 261 | case 2: 262 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) this.Prefs.setCharPref(name, val ? val : ""); 263 | return this.Prefs.getCharPref(name); 264 | case 3: 265 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) this.Prefs.setComplexValue(name, Ci.nsILocalFile, makeURI(val).QueryInterface(Ci.nsIFileURL).file); 266 | return this.Prefs.getComplexValue(name, Ci.nsILocalFile); 267 | case 4: 268 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) { 269 | var aFile = Cc["@mozilla.org/pref-relativefile;1"].createInstance(Ci.nsIRelativeFilePref); 270 | aFile.relativeToKey = "UChrm"; 271 | var path = Services.io.newFileURI(FileUtils.getDir("UChrm", '')).spec + val.replace(/^(\/\/|\\)/i, '').replace(/\\/ig, '/'); 272 | aFile.file = makeURI(path).QueryInterface(Ci.nsIFileURL).file; 273 | this.Prefs.setComplexValue(name, Ci.nsIRelativeFilePref, aFile || this[name]); 274 | } 275 | return this.Prefs.getComplexValue(name, Ci.nsIRelativeFilePref).file; 276 | default: 277 | break; 278 | } 279 | } 280 | }; 281 | 282 | /*****************************************************************************************/ 283 | function log(str) { 284 | if (FeiRuoBackup.Debug) console.log("[FeiRuoBackup Debug] " + str); 285 | } 286 | 287 | function $(id) document.getElementById(id); 288 | 289 | function $C(name, attr) { 290 | var el = document.createElement(name); 291 | if (attr) Object.keys(attr).forEach(function(n) el.setAttribute(n, attr[n])); 292 | return el; 293 | } 294 | window.FeiRuoBackup = FeiRuoBackup; 295 | FeiRuoBackup.init(); 296 | })(); -------------------------------------------------------------------------------- /FeiRuoMouse/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoMouse/1.png -------------------------------------------------------------------------------- /FeiRuoMouse/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoMouse/2.png -------------------------------------------------------------------------------- /FeiRuoMouse/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoMouse/3.png -------------------------------------------------------------------------------- /FeiRuoMouse/README.md: -------------------------------------------------------------------------------- 1 | FeiRuoMouse 2 | ============ 3 | 此为自用脚本,框架已有,如有需求请自行添加自定义命令或脚本 4 | 5 | - 支持e10s window。 6 | - 鼠标手势与拖拽管理。 7 | - 完全自定义鼠标操作。 8 | - 完全自定义事件执行命令。 9 | - 支持自定义脚本。 10 | - 选项即时生效。 11 | - 配置文件位置:【chrome\lib\\_FeiRuoMouse.js】 12 | 13 | ![](1.png) 14 | 15 | ![](2.png) 16 | 17 | ![](3.png) 18 | 19 | 选项说明书: 20 | -------------- 21 | 22 | - 请先看图片。 23 | - 还原默认值:还原默认值。 24 | - 自定义命令:打开配置文件,对自定义事件命令进行编辑(增加,删除)。 25 | 26 | 事件编辑,添加窗口: 27 | -------------- 28 | 29 | - 键盘辅助键:三个键盘辅助键,可以任意组合。 30 | - 作为排除键:在达到命令生效的条件时,同时按下所选定辅助键(组合),这个命令将不生效(即排除) 31 | - 鼠标手势和鼠标拖拽切换之后,提示,事件和条件的内容也会改变,请仔细。 32 | 33 | 配置文件,自定义命令: 34 | -------------- 35 | 36 | - 1、请以obj形式添加; 37 | - 2、label:说明文字,读取标识,必须! 38 | - 3、Type:拖拽的目标; 39 | - 4、command:自定义行为 请以 function(event){} 函数形式,自定义脚本直接置于函数内 40 | - 示例: 41 | 42 | { 43 | label: "转到页面顶部", //命令的说明文字 44 | command: function(event) {//此处为自定义命令,event为通过鼠标和辅助键等判断之后传回的,监听事件event,自定义脚本直接置于函数内 45 | var doc = event.target.ownerDocument; 46 | var win = doc.defaultView; 47 | goDoCommand('cmd_scrollTop'); 48 | } 49 | },{ 50 | label: "当前标签打开图片", //命令的说明文字 51 | Type: "Image",//拖拽图片时的命令 52 | command: function(event) {//此处为自定义命令,event为通过鼠标和辅助键等判断之后传回的,监听事件event,自定义脚本直接置于函数内 53 | loadURI(event.dataTransfer.getData("application/x-moz-file-promise-url")); 54 | } 55 | } -------------------------------------------------------------------------------- /FeiRuoNet/FeiRuoNet00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/FeiRuoNet00.png -------------------------------------------------------------------------------- /FeiRuoNet/FeiRuoNet01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/FeiRuoNet01.png -------------------------------------------------------------------------------- /FeiRuoNet/FeiRuoNet02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/FeiRuoNet02.png -------------------------------------------------------------------------------- /FeiRuoNet/README.md: -------------------------------------------------------------------------------- 1 | FeiRuoNet.uc.js 2 | ============ 3 | - 网络交互信息定义,查看、自定义与网站之间的交互信息。 4 | - 显示网站IP地址和所在国家国旗,支持IPV6,标示https安全等级,帮助识别网站真实性。 5 | - 支持本地数据库:`QQWry.dat`(中文)、`Flagfox[ip4.cdb、ip6.cdb]`(**感谢Flagfox**)。 6 | - 修改浏览器标识(UA)、Cookies、Referer,伪装IP,等所有Http头信息,可破解反盗链,破解限制等。 7 | - Http头信修改息可完全自定义字段和值,支持自定义规则(正则test)。 8 | - 刷新DNS缓存。 9 | - 菜单模式,集成 [AnotherButton](https://github.com/feiruo/userChromeJS/tree/master/anoBtn "AnotherButton") 除自定图标外所有功能。 10 | - 集成 [showFlagS](https://github.com/feiruo/userChromeJS/tree/master/showFlagS "showFlagS") 所有功能并增强。 11 | - 左键点击图复制IP,中键刷新,右键弹出菜单。 12 | - 更多功能需要【_FeiRuoNet.js】、【_FeiRuoNetMenu.js】、【FeiRuoNetLib.js】、【QQWry.dat】、【ip4.cdb】、【ip6.cdb】配置文件。 13 | - 配置文件位置位于:chrome\lib\ 文件夹下 14 | 15 | 16 | ###注意事项 17 | 18 | 1. 脚本正则方式均为`test()`,`test()`继承正则表达式的`lastIndex`属性,表达式在匹配全局标志g的时候须注意! 19 | 1. UA修改暂时无法在E10S实现JSFIX! 20 | 1. 配置文件内的规则方式均为正则匹配! 21 | 1. 对于菜单配置,本脚本参数增加: `%IP%`:当域名IP地址 ` %BASEDOMAIN%`:当前域名的主域名; 22 | 1. 留空表示不进行该行为。 23 | 1. 规则如果是str的会使用 `new RegExp(str,"i")`。 24 | 1. 查询优先规则:QQWry -> ip4.cdb(ip6.cdb) -> Web查询源 25 | 1. 图标优先规则:本地 -> Base64 -> 网络 26 | 27 | ------------ 28 | 29 | ###### Version 0.1.0 【2016.10.31 10:30】 30 | 1. 增加刷新DNS缓存功能 31 | 1. 修复E10S下,监听连接状态导致的浏览器崩溃事件(E10S自动禁用“网络错误时代理”) 32 | 1. 菜单部分不再内置,需要[AnotherButton](https://github.com/feiruo/userChromeJS/tree/master/anoBtn "AnotherButton")(1.40up)支持 33 | 1. 增加加载状态,优化Tip逻辑,多窗口逻辑,减少资源消耗 34 | 1. 优化IP数据库读取缓存机制,国旗和地址使用同源 35 | 1. 添加状态提示,自定义图标格式,自定义图标条件 36 | 1. 订阅URL,代理协议等更多详细设置请至“`about:config`”页面设置 37 | 1. 更多细节优化和修复 38 | 39 | ------------ 40 | 41 | ###示例部分 42 | ####Http头信息修改规则 43 | 此处注意,不会覆盖原始请求,这里的只是添加,当原始请求已有是,使用规则内的替换 44 | 45 | var HeadRules = [ //Http Head Rules 46 | "/^https?://([a-zA-Z]+)\\.?kankan.com.*$/": { 47 | heads: val, 48 | heads: val, 49 | } 50 | ]; 51 | 52 | ####自定义查询API,只要是你想要显示的都可以 53 | 54 | { 55 | //是否启用 56 | Enable: false, 57 | //是否针对当前网站的不同端口也发送请求 58 | DifPort: false, 59 | //脚本当次运行期间请求次数,0为每次请求。 60 | Times: 0, 61 | //延迟,毫秒 默认1000 62 | timeout: '1000', 63 | //请求的类型,默认 GET;例如:POST、GET、PUT及PROPFIND。大小写不敏感。 64 | method: 'GET', 65 | //查询接口API,此处可用变量参数 %HOST%、%IP%、%URL%等(仅用于GET)具体请参照;https://github.com/ywzhaiqi/userChromeJS/tree/master/addmenuPlus 66 | Api: "http://whois.pconline.com.cn/", 67 | //请求返回类型 68 | responseType: null, 69 | //用户名 70 | bstrUser: null, 71 | //密码 72 | bstrPassword: null, 73 | //发送的内容,字符串,仅method为POST时有效 74 | SendString: null, 75 | //onreadystatechange 76 | onreadystatechange: null, 77 | //overrideMimeType 78 | overrideMimeType: null, 79 | //回应头,数组, 80 | getResponseHeader: ['Server', 'Content-Type'], 81 | // 请求头,object 82 | setRequestHeader: { 83 | apikey: '1234564556465', 84 | apikey1: '123456654789', 85 | }, 86 | //截取函数,传入内容 docum 是XMLHttpRequest()的回应值。 87 | Func: function(docum) { 88 | var str 89 | //Your codes 90 | return str || null; 91 | } 92 | } 93 | 94 | 95 | ------------ 96 | 97 | ![](FeiRuoNet00.png) 98 | 99 | ![](FeiRuoNet01.png) 100 | 101 | ![](FeiRuoNet02.png) -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AQ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AX.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/AZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/AZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BB.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BJ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BQ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/BZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/BZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CX.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/CZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/CZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DJ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/DZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/DZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/EC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/EC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/EE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/EE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/EG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/EG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ER.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ER.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ES.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ES.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ET.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ET.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/EU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/EU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FJ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/FR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/FR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GB.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GQ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/GY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/GY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/HU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/HU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ID.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IQ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/IT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/IT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/JE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/JE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/JM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/JM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/JO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/JO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/JP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/JP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/KZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/KZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LB.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/LY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/LY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ME.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ME.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ML.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MQ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MX.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/MZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/MZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NP.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/NZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/NZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/OM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/OM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/PY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/PY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/QA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/QA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/RE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/RE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/RO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/RO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/RS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/RS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/RU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/RU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/RW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/RW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SB.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ST.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ST.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SX.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/SZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/SZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TD.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TH.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TJ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TK.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TL.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TO.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TR.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TV.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/TZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/TZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/UA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/UA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/UG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/UG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/UM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/UM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/US.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/UY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/UY.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/UZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/UZ.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/V6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/V6.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VC.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VG.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VI.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VN.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/VU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/VU.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/WF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/WF.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/WS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/WS.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/YE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/YE.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/YT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/YT.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ZA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ZA.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ZM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ZM.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/LocalFlags/ZW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/LocalFlags/ZW.png -------------------------------------------------------------------------------- /FeiRuoNet/lib/QQWry.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/QQWry.dat -------------------------------------------------------------------------------- /FeiRuoNet/lib/ShowIP.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/ShowIP.exe -------------------------------------------------------------------------------- /FeiRuoNet/lib/_FeiRuoNetProxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "CreatedBy": "FeiRuoNetAutoProxy", 3 | "注释": "DisbledFilter并非白名单!!!仅为不代理效列表,可随时切换!", 4 | "优先级": "GFWList白名单 >> DisbledFilter >> ProxyFilters & GFWList", 5 | "DisbledFilter": [], 6 | "ProxyFilters": [] 7 | } -------------------------------------------------------------------------------- /FeiRuoNet/lib/ip4.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/ip4.cdb -------------------------------------------------------------------------------- /FeiRuoNet/lib/ip6.cdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoNet/lib/ip6.cdb -------------------------------------------------------------------------------- /FeiRuoTabplus/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoTabplus/1.png -------------------------------------------------------------------------------- /FeiRuoTabplus/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoTabplus/2.png -------------------------------------------------------------------------------- /FeiRuoTabplus/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoTabplus/3.png -------------------------------------------------------------------------------- /FeiRuoTabplus/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/FeiRuoTabplus/4.png -------------------------------------------------------------------------------- /FeiRuoTabplus/README.md: -------------------------------------------------------------------------------- 1 | FeiRuoTabplus 2 | ============ 3 | - 支持e10s window。 4 | - 标签事件管理。 5 | - 完全自定义鼠标操作(作者鼠标只有3键)。 6 | - 完全自定义事件执行命令。 7 | - 选项即时生效。 8 | - ※、请注意配置,以免冲突(非脚本原因)。 9 | 10 | 如:有2个动作:1、鼠标左键双击为【关闭当前标签】,2、Alt+鼠标左键双击为【IE打开当前页】 11 | 那么执行2的时候,会先关闭当前标签,再用IE打开切换到的标签的URL; 12 | 13 | - 配置文件位置:【chrome\lib\\_FeiRuoTabplus.js】 14 | 15 | ![](1.png) 16 | ![](2.png) 17 | ![](3.png) 18 | ![](4.png) 19 | 20 | 选项说明书: 21 | -------------- 22 | 23 | - 请先看图片。 24 | - 自动聚焦:鼠标移动到标签上自动切换到该标签。 25 | - 聚焦延时:鼠标移动到标签上,多少毫秒之后自动切换到该标签。 26 | - 鼠标中键点击时bookmark菜单不关闭:bookmark菜单上鼠标中键点击时不关闭bookmark菜单。 27 | - 窗口边框调整:调整浏览器窗口各个边框的厚度。 28 | - 边框像素:你想要的边框厚度,依次为 上,左,下,右,数值越大边框越窄,实时生效。 29 | - 还原默认值:还原默认值。 30 | - 自定义命令:打开配置文件,对自定义事件命令进行编辑(增加,删除)。 31 | 32 | 事件编辑,添加窗口: 33 | -------------- 34 | 35 | - 键盘辅助键:三个键盘辅助键,可以任意组合。 36 | - 作为排除键:在达到命令生效的条件时,同时按下所选定辅助键(组合),这个命令将不生效(即排除) 37 | 38 | 如:选择【Ctrl】+【作为排除键】+鼠标点击【右键】+标签事件【关闭当前标签】; 39 | 那么当在标签上点击右键,即关闭当前标签; 40 | 当在标签上点击右键;【同时按住】Ctrl键,则会弹出右键菜单,而不会关闭当前标签; 41 | - 鼠标滚轮和鼠标点击切换之后,事件的内容也会改变,请仔细。 42 | 43 | 配置文件,自定义命令: 44 | -------------- 45 | 46 | - 1、请以obj形式添加; 47 | - 2、label:说明文字; 48 | - 3、Tag:作用域,Tab表示在只在标签上执行该行为,TabBar表示在只在标签栏上执行该行为; 49 | - 4、Mouse:鼠标行为,Click表示在只在鼠标点击事件执行该行为,Scroll表示在只在鼠标滚动事件执行该行为; 50 | - ※、gBrowser:监听附着节点,请慎重 【gBrowser.**mTabContainer**】; 51 | - 5、Command:自定义行为 请以 function(e){} 函数形式 52 | - 示例: 53 | 54 | { 55 | label: "站内搜索", //命令的说明文字 56 | Tag: "Tab TabBar",//表示标签和标签栏上都作用,在事件添加菜单中【标签事件】和【标签栏事件】都会显示该命令 57 | Mouse: "Click Scroll",//表示点击和滚动都作用,在事件添加菜单中【鼠标点击】和【鼠标滚轮】都会显示该命令 58 | gBrowser: "mTabContainer",//监听附着点,如果不清楚请勿随意更改 59 | Command: function(e) {//此处为自定义命令,e为通过鼠标和辅助键等判断之后传回的,监听事件event 60 | var s = prompt('站内搜索——请输入待搜索字符串', ''); 61 | if (s.length > 0) 62 | gBrowser.addTab('http://www.google.com/search?q=site:' + encodeURIComponent(content.location.host) + ' ' + encodeURIComponent(s)); 63 | } 64 | } -------------------------------------------------------------------------------- /FeiRuoTabplus/lib/_FeiRuoTabplus.js: -------------------------------------------------------------------------------- 1 | /****************************************************************************************** 2 | *FeiRuoTabPlus 自定义行为 3 | *******************************************************************************************/ 4 | var CustomCommand = [{ 5 | //命令的说明文字 6 | label: "站内搜索", 7 | //作用域,Tab表示在只在标签上执行该行为,TabBar表示在只在标签栏上执行该行为 8 | Tag: "Tab TabBar",//表示标签和标签栏上都作用 9 | //鼠标行为,Click表示在只在鼠标点击事件执行该行为,Scroll表示在只在鼠标滚动事件执行该行为 10 | Mouse: "Click Scroll",//表示点击和滚动都作用 11 | //gBrowser.mTabContainer,监听附着节点,请慎重 12 | gBrowser: "mTabContainer",//tabContainer 13 | //自定义行为 14 | Command: function(e) {//e为通过鼠标和辅助键等判断之后传回的event 15 | var s = prompt('站内搜索——请输入待搜索字符串', ''); 16 | if (s.length > 0) 17 | gBrowser.addTab('http://www.google.com/search?q=site:' + encodeURIComponent(content.location.host) + ' ' + encodeURIComponent(s)); 18 | } 19 | }, { 20 | label: "打开chrome文件夹", 21 | Tag: "Tab TabBar", 22 | Mouse: "Click Scroll", 23 | gBrowser: "mTabContainer", 24 | Command: function(e) { 25 | Cc["@mozilla.org/file/directory_service;1"]. 26 | getService(Ci.nsIProperties). 27 | get("UChrm", Ci.nsILocalFile).launch(); 28 | } 29 | }, { 30 | label: "复制URL和标题", 31 | Tag: "Tab TabBar", 32 | Mouse: "Click Scroll", 33 | gBrowser: "mTabContainer", 34 | Command: function(e) { 35 | Components.classes["@mozilla.org/widget/clipboardhelper;1"]. 36 | getService(Components.interfaces.nsIClipboardHelper). 37 | copyString(content.document.title.replace(/\s-\s.*/i, "") 38 | .replace(/_[^\[\]【】]+$/, "") + "\n" + content.location); 39 | } 40 | }]; -------------------------------------------------------------------------------- /Img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Img/2.png -------------------------------------------------------------------------------- /Img/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Img/3.png -------------------------------------------------------------------------------- /MouseGestures/MouseGestures.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Advanced Mouse Gestures (with Wheel Gesture and Rocker Gesture) 3 | // @namespace http://www.xuldev.org/ 4 | // @description 轻量级鼠标手势脚本(可自定义手势代码) 5 | // @include main 6 | // @author Raqbgxue + Gomita 7 | // @version 10.1.17 (folk from original 9.5.18) 8 | // @homepage http://www.xuldev.org/misc/ucjs.php 9 | // @homepage http://d.hatena.ne.jp/raqbgxue/20090624/1245848856 10 | // @note Ctrl+(right-click-up) => Reset Gesture 11 | // @charset utf-8 12 | //==/UserScript== 13 | var ucjsMouseGestures = { 14 | // options 15 | enableWheelGestures: true, 16 | enableRockerGestures: true, 17 | 18 | _lastX: 0, 19 | _lastY: 0, 20 | _directionChain: '', 21 | _isMouseDownL: false, 22 | _isMouseDownR: false, 23 | _hideFireContext: false, 24 | //for windows 25 | _shouldFireContext: false, 26 | //for linux 27 | GESTURES: {}, 28 | createMenuitem: function() { 29 | var menuitem = document.createElement('menuitem'); 30 | menuitem.setAttribute('id', 'ucjsMouseGestures'); 31 | menuitem.setAttribute('label', '鼠标手势'); 32 | menuitem.setAttribute("tooltiptext", '左键重载;右键编辑'); 33 | menuitem.setAttribute('oncommand', 'ucjsMouseGestures.reload(true);'); 34 | menuitem.setAttribute('onclick', 'if (event.button == 2) { event.preventDefault(); closeMenus(event.currentTarget); ucjsMouseGestures.edit(ucjsMouseGestures.file); }'); 35 | var insPos = document.getElementById('devToolsSeparator'); 36 | insPos.parentNode.insertBefore(menuitem, insPos); 37 | }, 38 | 39 | init: function() { 40 | this.reload(); 41 | var self = this; 42 | var events = ["mousedown", "mousemove", "mouseup", "contextmenu"]; 43 | if (this.enableRockerGestures) events.push("draggesture"); 44 | if (this.enableWheelGestures) events.push("DOMMouseScroll"); 45 | 46 | function registerEvents(aAction, eventArray) { 47 | eventArray.forEach(function(aType) { 48 | getBrowser().mPanelContainer[aAction + "EventListener"](aType, self, aType == "contextmenu"); 49 | }); 50 | }; 51 | registerEvents("add", events); 52 | window.addEventListener("unload", function() { 53 | registerEvents("remove", events); 54 | }, false); 55 | }, 56 | 57 | reload: function(isAlert) { 58 | var file = this.getMouseGesturesFile(); 59 | if (!file.exists()) return this.alert('Load Error: 配置文件不存在'); 60 | try { 61 | this.importMouseGestures(file); 62 | } catch (e) { 63 | this.alert('Error: ' + e + '\n请重新检查配置文件'); 64 | return; 65 | } 66 | if (isAlert) this.alert('配置已经重新载入'); 67 | }, 68 | 69 | alert: function(aString, aTitle) { 70 | Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle || "MouseGestures", aString, false, "", null); 71 | }, 72 | 73 | getMouseGesturesFile: function() { 74 | var aFile = Services.dirsvc.get("UChrm", Ci.nsILocalFile); 75 | aFile.appendRelativePath("lib"); 76 | aFile.appendRelativePath("_mouseGestures.js"); 77 | if (!aFile.exists() || !aFile.isFile()) return null; 78 | delete this.file; 79 | return this.file = aFile; 80 | }, 81 | 82 | importMouseGestures: function(file) { 83 | var fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); 84 | var sstream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); 85 | fstream.init(file, -1, 0, 0); 86 | sstream.init(fstream); 87 | var data = sstream.read(sstream.available()); 88 | try { 89 | data = decodeURIComponent(escape(data)); 90 | } catch (e) {} 91 | sstream.close(); 92 | fstream.close(); 93 | this.GESTURES = new Function('', 'return ' + data)(); 94 | return; 95 | }, 96 | edit: function(aFile) { 97 | if (!aFile || !aFile.exists() || !aFile.isFile()) return; 98 | var editor; 99 | try { 100 | editor = Services.prefs.getComplexValue("view_source.editor.path", Ci.nsILocalFile); 101 | } catch (e) { 102 | this.alert("请设置编辑器的路径。\nview_source.editor.path"); 103 | toOpenWindowByType('pref:pref', 'about:config?filter=view_source.editor.path'); 104 | return; 105 | } 106 | var UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 107 | UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0 ? "gbk" : "UTF-8"; 108 | var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); 109 | 110 | try { 111 | var path = UI.ConvertFromUnicode(aFile.path); 112 | var args = [path]; 113 | process.init(editor); 114 | process.run(false, args, args.length); 115 | } catch (e) { 116 | this.alert("编辑器不正确!") 117 | } 118 | }, 119 | 120 | handleEvent: function(event) { 121 | switch (event.type) { 122 | case "mousedown": 123 | if (event.button == 2) { 124 | this._isMouseDownR = true; 125 | this._hideFireContext = false; 126 | this._startGesture(event); 127 | } 128 | if (this.enableRockerGestures) { 129 | if (event.button == 2 && this._isMouseDownL) { 130 | this._isMouseDownR = false; 131 | this._shouldFireContext = false; 132 | this._hideFireContext = true; 133 | this._directionChain = "L>R"; 134 | this._stopGesture(event); 135 | } else if (event.button == 0) { 136 | this._isMouseDownL = true; 137 | if (this._isMouseDownR) { 138 | this._isMouseDownL = false; 139 | this._shouldFireContext = false; 140 | this._hideFireContext = true; 141 | this._directionChain = "L 0 ? "+" : "-"); 192 | this._stopGesture(event); 193 | } 194 | break; 195 | case "draggesture": 196 | this._isMouseDownL = false; 197 | break; 198 | } 199 | }, 200 | 201 | _displayContextMenu: function(event) { 202 | var evt = event.originalTarget.ownerDocument.createEvent("MouseEvents"); 203 | evt.initMouseEvent("contextmenu", true, true, event.originalTarget.defaultView, 0, event.screenX, event.screenY, event.clientX, event.clientY, false, false, false, false, 2, null); 204 | event.originalTarget.dispatchEvent(evt); 205 | }, 206 | 207 | _startGesture: function(event) { 208 | this._lastX = event.screenX; 209 | this._lastY = event.screenY; 210 | this._directionChain = ""; 211 | this.createTrail(event); 212 | }, 213 | 214 | _progressGesture: function(event) { 215 | var x = event.screenX, 216 | y = event.screenY; 217 | var lastX = this._lastX, 218 | lastY = this._lastY; 219 | var subX = x - lastX, 220 | subY = y - lastY; 221 | var distX = (subX > 0 ? subX : (-subX)), 222 | distY = (subY > 0 ? subY : (-subY)); 223 | var direction; 224 | if (distX < 10 && distY < 10) return; 225 | if (distX > distY) direction = subX < 0 ? "L" : "R"; 226 | else direction = subY < 0 ? "U" : "D"; 227 | var dChain = this._directionChain; 228 | this.drawTrail(this._lastX, this._lastY, x, y); 229 | if (direction != dChain.charAt(dChain.length - 1)) { 230 | dChain += direction; 231 | this._directionChain += direction; 232 | var gesture = this.GESTURES[dChain]; 233 | XULBrowserWindow.statusTextField.label = "手势: " + dChain + (gesture ? ' (' + gesture.name + ')' : ''); 234 | } 235 | this._lastX = x; 236 | this._lastY = y; 237 | }, 238 | 239 | _stopGesture: function(event) { 240 | try { 241 | if (dChain = this._directionChain) { 242 | if (typeof this.GESTURES[dChain].cmd == "function") this.GESTURES[dChain].cmd(this, event); 243 | else eval(this.GESTURES[dChain].cmd); 244 | XULBrowserWindow.statusTextField.label = ""; 245 | } 246 | } catch (e) { 247 | XULBrowserWindow.statusTextField.label = '手势未定义或函数定义错误: ' + dChain; 248 | } 249 | this._directionChain = ""; 250 | this.eraseTrail(); 251 | }, 252 | 253 | _trailDot: null, 254 | _trailArea: null, 255 | _trailLastDot: null, 256 | _trailOffsetX: 0, 257 | _trailOffsetY: 0, 258 | _trailZoom: 1, 259 | _trailSize: 2, 260 | _trailColor: "brown", 261 | 262 | createTrail: function FGH_createTrail(event) { 263 | var win = event.view; 264 | if (win.top.document instanceof Ci.nsIDOMHTMLDocument) win = win.top; 265 | else if (win.document instanceof Ci.nsIDOMHTMLDocument === false) return; 266 | var doc = win.document; 267 | var insertionNode = doc.documentElement ? doc.documentElement : doc; 268 | var win = doc.defaultView; 269 | this._trailZoom = win.QueryInterface(Ci.nsIInterfaceRequestor). 270 | getInterface(Ci.nsIDOMWindowUtils).screenPixelsPerCSSPixel; 271 | this._trailOffsetX = (win.mozInnerScreenX - win.scrollX) * this._trailZoom; 272 | this._trailOffsetY = (win.mozInnerScreenY - win.scrollY) * this._trailZoom; 273 | this._trailArea = doc.createElementNS("http://www.w3.org/1999/xhtml", "xdTrailArea"); 274 | insertionNode.appendChild(this._trailArea); 275 | this._trailDot = doc.createElementNS("http://www.w3.org/1999/xhtml", "xdTrailDot"); 276 | this._trailDot.style.width = this._trailSize + "px"; 277 | this._trailDot.style.height = this._trailSize + "px"; 278 | this._trailDot.style.background = this._trailColor; 279 | this._trailDot.style.border = "0px"; 280 | this._trailDot.style.position = "absolute"; 281 | this._trailDot.style.zIndex = 2147483647; 282 | }, 283 | 284 | drawTrail: function FGH_drawTrail(x1, y1, x2, y2) { 285 | if (!this._trailArea) return; 286 | var xMove = x2 - x1; 287 | var yMove = y2 - y1; 288 | var xDecrement = xMove < 0 ? 1 : -1; 289 | var yDecrement = yMove < 0 ? 1 : -1; 290 | x2 -= this._trailOffsetX; 291 | y2 -= this._trailOffsetY; 292 | if (Math.abs(xMove) >= Math.abs(yMove)) for (var i = xMove; i != 0; i += xDecrement) 293 | this._strokeDot(x2 - i, y2 - Math.round(yMove * i / xMove)); 294 | else for (var i = yMove; i != 0; i += yDecrement) 295 | this._strokeDot(x2 - Math.round(xMove * i / yMove), y2 - i); 296 | }, 297 | 298 | eraseTrail: function FGH_eraseTrail() { 299 | if (this._trailArea && this._trailArea.parentNode) { 300 | while (this._trailArea.lastChild) 301 | this._trailArea.removeChild(this._trailArea.lastChild); 302 | this._trailArea.parentNode.removeChild(this._trailArea); 303 | } 304 | this._trailDot = null; 305 | this._trailArea = null; 306 | this._trailLastDot = null; 307 | }, 308 | 309 | _strokeDot: function FGH__strokeDot(x, y) { 310 | if (this._trailArea.y == y && this._trailArea.h == this._trailSize) { 311 | var newX = Math.min(this._trailArea.x, x); 312 | var newW = Math.max(this._trailArea.x + this._trailArea.w, x + this._trailSize) - newX; 313 | this._trailArea.x = newX; 314 | this._trailArea.w = newW; 315 | this._trailLastDot.style.left = newX.toString() + "px"; 316 | this._trailLastDot.style.width = newW.toString() + "px"; 317 | return; 318 | } else if (this._trailArea.x == x && this._trailArea.w == this._trailSize) { 319 | var newY = Math.min(this._trailArea.y, y); 320 | var newH = Math.max(this._trailArea.y + this._trailArea.h, y + this._trailSize) - newY; 321 | this._trailArea.y = newY; 322 | this._trailArea.h = newH; 323 | this._trailLastDot.style.top = newY.toString() + "px"; 324 | this._trailLastDot.style.height = newH.toString() + "px"; 325 | return; 326 | } 327 | if (this._trailZoom != 1) { 328 | x = Math.floor(x / this._trailZoom); 329 | y = Math.floor(y / this._trailZoom); 330 | } 331 | var dot = this._trailDot.cloneNode(true); 332 | dot.style.left = x + "px"; 333 | dot.style.top = y + "px"; 334 | this._trailArea.x = x; 335 | this._trailArea.y = y; 336 | this._trailArea.w = this._trailSize; 337 | this._trailArea.h = this._trailSize; 338 | this._trailArea.appendChild(dot); 339 | this._trailLastDot = dot; 340 | }, 341 | 342 | }; 343 | 344 | ucjsMouseGestures.createMenuitem(); 345 | ucjsMouseGestures.init(); -------------------------------------------------------------------------------- /MouseGestures/README.md: -------------------------------------------------------------------------------- 1 | MouseGestures 2 | ============ 3 | 4 | - 使用外部配置文件。 5 | - 工具菜单中增加一个重载菜单,左键重载,右键编辑配置文件。 6 | - 配置文件位置: 7 | 8 | Chrome\lib\_mouseGestures.js 9 | 10 | -------------------------------------------------------------------------------- /MouseGestures/_mouseGestures.js: -------------------------------------------------------------------------------- 1 | GESTURES = { 2 | 'LR': { 3 | name: '关闭WordHighlightToolbar', 4 | cmd: function() { 5 | window.gWHT.destroyToolbar(); 6 | } 7 | }, 8 | 'U': { 9 | name: '页面顶部', 10 | cmd: function(gestures, event) { 11 | var doc = event.target.ownerDocument; 12 | var win = doc.defaultView; 13 | win.scrollTo(0, 0); 14 | } 15 | }, 16 | 'D': { 17 | name: '页面底部', 18 | cmd: function(gestures, event) { 19 | var doc = event.target.ownerDocument; 20 | var win = doc.defaultView; 21 | win.scrollTo(0, 10000000000); 22 | } 23 | }, 24 | 'L': { 25 | name: '后退/上一页', 26 | cmd: function() { 27 | var nav = gBrowser.webNavigation; 28 | if (nav.canGoBack) nav.goBack(); 29 | else nextPage.next(); 30 | } 31 | }, 32 | 'R': { 33 | name: '前进/下一页', 34 | cmd: function() { 35 | var nav = gBrowser.webNavigation; 36 | if (nav.canGoForward) nav.goForward(); 37 | else nextPage.next(true); 38 | } 39 | }, 40 | 'UL': { 41 | name: '上个标签页', 42 | cmd: function() { 43 | gBrowser.mTabContainer.advanceSelectedTab(-1, true); 44 | } 45 | }, 46 | 'UR': { 47 | name: '下个标签页', 48 | cmd: function() { 49 | gBrowser.mTabContainer.advanceSelectedTab(+1, true); 50 | } 51 | }, 52 | 'DR': { 53 | name: '关闭当前标签页', 54 | cmd: function() { 55 | gBrowser.removeCurrentTab(); 56 | } 57 | }, 58 | 'DL': { 59 | name: '撤销关闭标签页', 60 | cmd: function() { 61 | try { 62 | document.getElementById('History:UndoCloseTab').doCommand(); 63 | } catch (ex) { 64 | if ('undoRemoveTab' in gBrowser) gBrowser.undoRemoveTab(); 65 | else throw "Session Restore feature is disabled." 66 | } 67 | } 68 | }, 69 | 'LU': { 70 | name: '关闭重复标签', 71 | cmd: function() { 72 | CloseRepeatedTabs(); 73 | } 74 | }, 75 | 'RU': { 76 | name: '侧边栏', 77 | cmd: function() { 78 | toggleSidebar(); 79 | } 80 | }, 81 | 'LD': { 82 | name: '最小化窗口', 83 | cmd: function() { 84 | window.minimize(); 85 | } 86 | }, 87 | 'RD': { 88 | name: 'GrabScroll', 89 | cmd: function() { 90 | GrabScroll.toggle(); 91 | } 92 | }, 93 | 'DU': { 94 | name: '刷新', 95 | cmd: function() { 96 | document.getElementById("Browser:Reload").doCommand(); 97 | } 98 | }, 99 | 'DUD': { 100 | name: '强制刷新', 101 | cmd: function() { 102 | document.getElementById("Browser:ReloadSkipCache").doCommand(); 103 | } 104 | }, 105 | 'ULR': { 106 | name: '最大化/恢复窗口', 107 | cmd: function() { 108 | window.windowState == 1 ? window.restore() : window.maximize(); 109 | } 110 | }, 111 | 'DLR': { 112 | name: '清除startupCache并重启浏览器', 113 | cmd: function() { 114 | Services.appinfo.invalidateCachesOnRestart() || Application.restart(); 115 | } 116 | }, 117 | 'DRL': { 118 | name: '关闭其他标签页', 119 | cmd: function() { 120 | gBrowser.removeAllTabsBut(gBrowser.mCurrentTab); 121 | } 122 | }, 123 | 'LUD': { 124 | name: '关闭左侧所有标签页', 125 | cmd: function() { 126 | var tabs = gBrowser.mTabContainer.childNodes; 127 | for (var i = tabs.length - 1; tabs[i] != gBrowser.mCurrentTab; i--) {} 128 | for (i--; i >= 0; i--) { 129 | gBrowser.removeTab(tabs[i]); 130 | } 131 | } 132 | }, 133 | 'RUD': { 134 | name: '关闭右侧所有标签页', 135 | cmd: function() { 136 | var tabs = gBrowser.mTabContainer.childNodes; 137 | for (var i = tabs.length - 1; tabs[i] != gBrowser.selectedTab; i--) { 138 | gBrowser.removeTab(tabs[i]); 139 | } 140 | } 141 | }, 142 | 'L>R': { 143 | name: '重置缩放', 144 | cmd: function() { 145 | FullZoom.reset(); 146 | } 147 | }, 148 | 'L 5 | https://github.com/alice0775/userChrome.js/blob/master/userChrome.js
6 | Or this:
7 | https://github.com/ywzhaiqi/userChromeJS/tree/master/userChromeJS_Mix.xpi 8 | 9 | 10 | #####QrCreator.uc.js 11 | 1. 修改于[qrCreator](https://raw.github.com/lastdream2013/userChrome/master/qrCreator.uc.js "qrCreator") 12 | 2. 支持E10S 13 | 3. 支持ywzhaiqi的userChromeJS_Mix实时启用禁用 14 | 3. 本地解析二维码,支持背景图像和canvas 15 | 16 | #####AwesomeBookmarkbar.uc.js 17 | ![](Img/3.png) 18 | 19 | #####bookmarkallmod.uc.js 20 | - 退出浏览器的时候保存所有未关闭的页面为书签; 21 | - 可以自定义保存位置(书签工具栏/书签菜单),保存目录等; 22 | - 但设置了保存次数之后,达到数量会自动删除较早的条目。 23 | 24 | ![](Img/2.png) 25 | 26 | #####bookmarkBtn.uc.js 27 | - 可移动书签菜单按钮; 28 | - 方便FF23以下版本和UX版本。 29 | 30 | #####starClickMod.uc.js 31 | - 多功能收藏按钮,支持UX版Fireofx; 32 | - 单击收藏按钮自动弹出书签编辑面板; 33 | - 自动获取上次使用的文件夹并选中; 34 | - 书签编辑面板自动展开文件夹选择面板; 35 | - 书签编辑面板增加关键字、标签、侧边栏打开等; 36 | - 右键单击收藏按钮从收藏中删除当前页面。 37 | 38 | #####starClickMod40Up.uc.js 39 | - 仅支持40Up。 40 | - 设置放入`about:config`中,即时生效,有以下 参数: 41 | 1. ` userChromeJS.starClickMod.isAutoPopup;` 是否自动弹出面板 42 | 1. ` userChromeJS.starClickMod.isLastFolder;` 是否自动定位到上次使用的文件夹 43 | 44 | #####StarUrlicon.uc.js 45 | - UI移动整个书签按钮到地址栏; 46 | - 推荐和`bookmarkBtn.uc.js`同时使用 47 | - 设置放入`about:config`中,即时生效,有以下 参数: 48 | 1. `userChromeJS.StarUrlicon.Assistant` //右键 显示/隐藏 书签侧栏,中键删除当前页面书签 49 | 1. `userChromeJS.StarUrlicon.CSS` //自带的css样式 50 | 1. `userChromeJS.StarUrlicon.Dropmarker` //隐藏Dropmarker 51 | 52 | #####FeiRuoBackup.uc.js 53 | - 备份、整合和还原配置文件。 54 | - 需要在脚本内自行参照示例设置。 55 | - 暂只支持文本形式文件的备份、整合和还原。 56 | - ` FeiRuoBackup.Toggle() `可以实时开启或关闭。 57 | - 菜单栏 → 工具 → 备份还原文件 可查看启用状态,实时开启或关闭 58 | -------------------------------------------------------------------------------- /RefererChange/README.md: -------------------------------------------------------------------------------- 1 | RefererChange 2 | ============ 3 | 4 | - 使用外部配置文件。 5 | - 工具菜单中增加一个重载菜单,左键重载,右键编辑配置文件,中建启用/禁用。 6 | - 修改或重载以后需要强制刷新页面。 7 | - 配置文件位置: 8 | 9 | Chrome\lib\_refererChange.js -------------------------------------------------------------------------------- /RefererChange/RefererChange.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name refererChangerBlacklistVersion 3 | // @include main 4 | // @include chrome://browser/content/browser.xul 5 | // @charset utf-8 6 | // @version 1.0.3 7 | // @description Refererの内容を柔軟に書き換えるUserScriptです。 8 | // ==/UserScript== 9 | var refererChanger = {}; 10 | refererChanger.state = true; /* 启动时是否启用 */ 11 | refererChanger.fileName = 'lib\\_refererChange.js'; 12 | refererChanger.enabledLab = "\u7834\u89E3\u56FE\u7247\u5916\u94FE\u5DF2\u5F00\u542F"; 13 | refererChanger.disabledLab = "\u7834\u89E3\u56FE\u7247\u5916\u94FE\u5DF2\u5173\u95ED"; 14 | refererChanger.enabledSrc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHUlEQVQ4jX3T3U9bBRjH8ZN46d/BhTdk171TSGuTg6aTjHkhZqmF9bBkwY5RUAbtkI6W09EX6JDQClNejlJFNjZlHdIdVEIpzCbCDHUu01EcXU9L4cQs4euVM3PEX/K9/eS5eYTRmZQcnVnLDSgpTZ44ovHnCykpbejLlcvCP4vNrO083t093CuXKe/r/9vuns5OocTgdLrwDBhQUlppr8zAtYfI19bpuj7FaCqEcreb8XU34aQPe/RjHCN3aB35mcclnbCS1p4B/omUVt7XiVx/iOfGTUZXQkz+dI7hlUYiP1q5sizhm7+INPQZ7bENdrQjgNK+ztCN3+mau8rEupsryzYC37+DL/k2nsWT+JPNvBvso2PsHjntgLCy+jyg7esM3/yDztlRPlntoH+pHs93J3DdPs6FW8fxJM5Q39+L69Nf2C7svwgUyjoj3zzCMztHKHmJy0tWum6/Rfu3b9KZOMmHXzmRBq/SPbHF9pMjLniypxOb3yY0dxenEsPz9Vm8CRue+VN88HkT74UCdIwtcWkq+yIgT6S0fElnNJEjNr9NcHad8+56evzVeHyv0nXxBO7xH/DHf8P3xa88OgrYLeq0K2/QOiny/piZbkcNXo+baDSKu6OF0/1mGsKv0dbpIBqN0uPxHtrt9pbKysqXhb7xlJYv6iS3FljYvIXb7yIQCJDL5chmsywuLtIr99IX9LF5b5NsNouqqgQCAURR9AryeErLFw9Ibi0wOBnG2dZKOpPh/IUWxBoRm81GMBikra0Nm81GTU0Np886n6qqisPh0IRBJfUgXyhS3NPx+mQ+6ukhncnwZ17DZHqdRCJBOp0mmUwyPT2NyWQiPLWsqaqKy+XSheH4qncovnYnrKxqjed6D+zSmcN0JoPV7nhaVVWN0WjEYrFgsVgwGo1UVVVTf6rxgaqqNDQ0/PsTgiAIFRUVr4iiuCHLckFRlHw8HicSidDc3IzT6SQSiRCPx1EUJS/LckEUxQ3hP3vJYDAcM5vN961Wa1mSJL2pqemvurq6+tra2ipJkkqSJOlWq7VsNpvvGwyGY38DN9aNRVh5uVwAAAAASUVORK5CYII="; 15 | refererChanger.disabledSrc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACN0lEQVQ4ja3TS08TURiHcb6UO+MlcWWMJkgILsQYJMRqNEYiBERKIQxSWi5TWlouY0GnMEJr5Sq1qG2qNExpK4kGgkaD9hJa5nRm2tOVf3c1kzaEhW/yrM7JL+/inKqq/zFOr2ia8kZTo4JITK4K8dpYQSR2z9ZgCeC80fRhJvNHUVWoeXpsGYUiLcmwLmxLJWBUEImsqBhdOoBpKQb98hycIgsh3gM+ZoAlYMTtKQceTgbRMvkFhzKFRdgmJcDsEomap7AtH4BZXYNzi8Xs52aMbzXBttmAsbAORl83dPYXaOO+Ik0qAHKewr76C/qVGbhiBoyFGzH88TqMgWtgPtTBHHiAGyMD6JjeRYoUYBEiWoDkKcbXfqNz0YlnkQ4MherBvK9F10Y1nrytBuO/i/qhp+h6voeklC8HJJVi8k0CzOIK2EAfBkMN0G9cRdv6FXT66/D4VSt01hn0uPaRPKqwwZFCwfmSYFfiaBU4MK/vo9/fCMZ3E+0v7+AWO4yO6RD65r6VAyaXSLIyhdOfAudLYmQxhkeGevSaL4Axnoe+uxYG/hPM7h8wzn9HohKQyVG0CZfRMnsJzfxFONpPYYerQZyrgaf3LJoc59A4dgYN1tPlwAAvkmyOIrD/rlRox4Pw5gTinnsI7q5rzhLZAljNBrxIsrmC5tJxJbJUC1gF8WdWyiGnUOTUIohaBFEpiEIhlVXEoSTDuhD995TH3ZF+uzsatAgRwp4g23yETLgjQyf8q8fPX8SIYXU9r0McAAAAAElFTkSuQmCC"; 16 | 17 | refererChanger.sites = { 18 | 19 | }; 20 | refererChanger.init = function() { 21 | this.reload(); 22 | var label = this.state ? this.enabledLab : this.disabledLab; 23 | var tooltiptext = this.state ? this.enabledTip : this.disabledTip; 24 | var src = this.state ? this.enabledSrc : this.disabledSrc; 25 | var menuitem = document.createElement('menuitem'); 26 | menuitem.setAttribute('id', 'RefererChanger'); 27 | menuitem.setAttribute('class', 'menuitem-iconic'); 28 | menuitem.setAttribute('label', label); 29 | menuitem.setAttribute("tooltiptext", '左键重载 ;中键 启用/禁用;右键编辑 '); 30 | menuitem.setAttribute('src', src); 31 | menuitem.setAttribute('oncommand', 'refererChanger.reload(true);'); 32 | menuitem.setAttribute('onclick', 'if (event.button == 2) {event.preventDefault();closeMenus(event.currentTarget); refererChanger.edit();}else if(event.button == 1) { event.preventDefault(); refererChanger.RCToggle();}'); 33 | var insPos = document.getElementById('devToolsSeparator'); 34 | insPos.parentNode.insertBefore(menuitem, insPos); 35 | var os = Cc['@mozilla.org/observer-service;1'].getService( 36 | Ci.nsIObserverService); 37 | os.addObserver(this, 'http-on-modify-request', false); 38 | 39 | }; 40 | refererChanger.RCToggle = function() { 41 | this.state = !this.state; 42 | let menuitem = document.getElementById('RefererChanger'); 43 | try { 44 | var label = this.state ? this.enabledLab : this.disabledLab; 45 | var tooltiptext = this.state ? this.enabledTip : this.disabledTip; 46 | var src = this.state ? this.enabledSrc : this.disabledSrc; 47 | menuitem.setAttribute("label", label); 48 | menuitem.setAttribute("src", src); 49 | } catch (e) {} 50 | }; 51 | 52 | refererChanger.reload = function(isAlert) { 53 | var data = this.loadFile(this.fileName); 54 | if (!data) return; 55 | var sandbox = new Cu.Sandbox(new XPCNativeWrapper(window)); 56 | try { 57 | Cu.evalInSandbox(data, sandbox, "1.8"); 58 | } catch (e) { 59 | this.alert("Error: " + e + "\n请重新检查配置文件"); 60 | return; 61 | } 62 | 63 | this.sites = sandbox.sites; 64 | if (isAlert) this.alert("配置已经重新载入"); 65 | }; 66 | 67 | refererChanger.loadFile = function(aLeafName) { 68 | var aFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIDirectoryService).QueryInterface(Ci.nsIProperties).get('UChrm', Ci.nsILocalFile); 69 | aFile.appendRelativePath(aLeafName); 70 | if (!aFile.exists() || !aFile.isFile()) return null; 71 | var fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); 72 | var sstream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); 73 | fstream.init(aFile, -1, 0, 0); 74 | sstream.init(fstream); 75 | var data = sstream.read(sstream.available()); 76 | try { 77 | data = decodeURIComponent(escape(data)); 78 | } catch (e) {} 79 | sstream.close(); 80 | fstream.close(); 81 | return data; 82 | }; 83 | refererChanger.alert = function(aString, aTitle) { 84 | Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle || "RefererChanger", aString, false, "", null); 85 | }; 86 | 87 | refererChanger.edit = function() { 88 | var aFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIDirectoryService).QueryInterface(Ci.nsIProperties).get('UChrm', Ci.nsILocalFile); 89 | aFile.appendRelativePath(this.fileName); 90 | if (!aFile || !aFile.exists() || !aFile.isFile()) return; 91 | var editor; 92 | try { 93 | editor = Services.prefs.getComplexValue("view_source.editor.path", Ci.nsILocalFile); 94 | } catch (e) { 95 | this.alert("请设置编辑器的路径。\nview_source.editor.path"); 96 | toOpenWindowByType('pref:pref', 'about:config?filter=view_source.editor.path'); 97 | return; 98 | } 99 | var UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 100 | UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0 ? "gbk" : "UTF-8"; 101 | var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); 102 | 103 | try { 104 | var path = UI.ConvertFromUnicode(aFile.path); 105 | var args = [path]; 106 | process.init(editor); 107 | process.run(false, args, args.length); 108 | } catch (e) { 109 | this.alert("编辑器不正确!") 110 | } 111 | }, 112 | // *********Config End********** 113 | //var statusbarHidden = true; 114 | refererChanger.adjustRef = function(http, site) { 115 | try { 116 | var sRef; 117 | var refAction = undefined; 118 | for (var i in this.sites) { 119 | if (site.indexOf(i) != -1) { 120 | refAction = this.sites[i]; 121 | break; 122 | } 123 | } 124 | 125 | if (refAction == undefined) return true; 126 | if (refAction.charAt(0) == '@') { 127 | //下はデバッグ用 128 | //logs.logStringMessage("ReferrerChanger: " + http.originalURI.spec + " : "+refAction); 129 | //logs.logStringMessage("ReferrerChanger: OriginalReferrer: "+http.referrer.spec); 130 | 131 | switch (refAction) { 132 | case '@NORMAL': 133 | return true; 134 | break; 135 | case '@FORGE': 136 | sRef = http.URI.scheme + "://" + http.URI.hostPort + "/"; 137 | break; 138 | case '@BLOCK': 139 | sRef = ""; 140 | break; 141 | case '@AUTO': 142 | return false; 143 | case '@ORIGINAL': 144 | sRef = window.content.document.location.href; 145 | break; 146 | default: 147 | //return false; 148 | break; 149 | } 150 | } else if (refAction.length == 0) { 151 | return true; 152 | } else { 153 | sRef = refAction; 154 | } 155 | http.setRequestHeader("Referer", sRef, false); 156 | if (http.referrer) http.referrer.spec = sRef; 157 | return true; 158 | } catch (e) {} 159 | return true; 160 | }; 161 | 162 | refererChanger.observe = function(aSubject, aTopic, aData) { 163 | if (aTopic != 'http-on-modify-request') return; 164 | if (!this.state) return; 165 | var http = aSubject.QueryInterface(Ci.nsIHttpChannel); 166 | for (var s = http.URI.host; s != ""; s = s.replace(/^.*?(\.|$)/, "")) { 167 | if (this.adjustRef(http, s)) return; 168 | } 169 | if (http.referrer && http.referrer.host != http.originalURI.host) http.setRequestHeader('Referer', http.originalURI.spec.replace(/[^/]+$/, ''), false); 170 | }; 171 | 172 | refererChanger.unregister = function() { 173 | var os = Cc['@mozilla.org/observer-service;1'].getService( 174 | Ci.nsIObserverService); 175 | os.removeObserver(this, 'http-on-modify-request', false); 176 | }; 177 | 178 | var added = false; 179 | if (location == "chrome://browser/content/browser.xul") { 180 | added = true; 181 | refererChanger.init(); 182 | } 183 | window.addEventListener("unload", function() { 184 | if (location == "chrome://browser/content/browser.xul") if (added) refererChanger.unregister(); 185 | }, false); -------------------------------------------------------------------------------- /RefererChange/_refererChange.js: -------------------------------------------------------------------------------- 1 | // @NORMAL:不改变referer 2 | // @FORGE:发送根站点referer 3 | // @ORIGINAL:发送打开站点referer 4 | // @BLOCK : 发送空referer 5 | sites = { 6 | 'img.ph.126.net' : '@FORGE', 7 | 'isnowfy.com' : '@FORGE', 8 | 'image.itmedia.co.jp' : '@FORGE', 9 | '2ch.net' : '@FORGE', 10 | 'imepita.jp' : '@ORIGINAL', 11 | 'tumblr.com' : '@FORGE', 12 | 'photo.store.qq.com' : '@FORGE', 13 | 'img.pconline.com.cn' : '@FORGE', 14 | 'fc2.com' : '@BLOCK', 15 | 'blogs.yahoo.co.jp' : '@BLOCK', 16 | 'hentaiverse.net': '@BLOCK', 17 | 'photo.sina.com.cn':'@BLOCK', 18 | 'qlogo.cn':'@BLOCK', 19 | 'qpic.cn':'@BLOCK', 20 | 'fmn.rrfmn.com' : '@BLOCK', 21 | 'bdstatic.com' : 'http://tieba.baidu.com/', 22 | 'space.wenxuecity.com' : 'http://bbs.wenxuecity.com/', 23 | 'www.autoimg.cn' : 'http://club.autohome.com.cn/', 24 | 'kkkmh.com' : 'http://www.kkkmh.com/', 25 | 'nonie.1ting.com' : 'http://www.1ting.com/', 26 | 'sinaimg.cn' : 'http://blog.sina.com.cn/', 27 | 'yyets.com' : 'http://www.yyets.com/', 28 | 'img.knb.im' : 'http://www.kenengba.com/', 29 | 'tianya.cn' : 'http://bbs.tianya.cn/', 30 | 'baidu-img.cn' : 'http://www.baidu.com/', 31 | 'xici.net' : 'http://www.xici.net/', 32 | 'media.chinagate.com' : 'http://www.wenxuecity.com/', 33 | 'jdstatic.tankr.net' : 'http://jandan.net/', 34 | 'sankakustatic.com' : 'http://chan.sankakucomplex.com/', 35 | 36 | //下はデバッグ用 37 | //'taruo.net' : 'example.co.jp', 38 | 'postimage.org' : '@FORGE', 39 | 'hiphotos.baidu.com' : '@FORGE', 40 | 'img.cnbeta.com' : '@FORGE', 41 | 'imgsrc.baidu.com' : '@FORGE', 42 | }; -------------------------------------------------------------------------------- /RuleS/README.md: -------------------------------------------------------------------------------- 1 | RulesS 2 | ============ 3 | - 简单规则,对于一些无URL匹配规则功能的扩充。 4 | - 目前只支持简单的切换规则。 5 | 6 | Chrome\lib\_RuleS.js \\规则配置文件 7 | -------------------------------------------------------------------------------- /RuleS/RuleS.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name RulesS.uc.js 3 | // @description 简单规则 4 | // @author feiruo 5 | // @compatibility Firefox 16 6 | // @charset UTF-8 7 | // @include chrome://browser/content/browser.xul 8 | // @id [8E7644D6] 9 | // @startup window.RuleSimple.init(); 10 | // @shutdown window.RuleSimple.onDestroy(true); 11 | // @homepageURL https://github.com/feiruo/userChromeJS/tree/master/RuleS 12 | // @note 目前只支持简单的切换规则 13 | // @note 规则外置,支持重载 14 | // @version 0.1 Begin 2014-08-25 15 | // ==/UserScript== 16 | location == "chrome://browser/content/browser.xul" && (function() { 17 | 18 | if (!window.RuleSimple) { 19 | window.RuleSimple = { 20 | init: function() { 21 | for (var i = 0; i < userChrome_js.scripts.length; i++) { 22 | if (userChrome_js.scripts[i].id == '[8E7644D6]' || userChrome_js.scripts[i].description == '简单规则') { 23 | var name = userChrome_js.scripts[i].filename; 24 | var dir = userChrome_js.scripts[i].dir; 25 | if (dir == 'root') 26 | dir = FileUtils.getFile("UChrm", [name]).path; 27 | else 28 | dir = FileUtils.getFile("UChrm", [dir, name]).path; 29 | } 30 | } 31 | userChrome.import(dir); 32 | }, 33 | onDestroy: function(isAlert) { 34 | window.RuleS.resetState(); 35 | window.RuleS.removeMenu(); 36 | $("RuleS-icon").parentNode.removeChild($("RuleS-icon")); 37 | $("RuleS-popup").parentNode.removeChild($("RuleS-popup")); 38 | window.getBrowser().removeProgressListener(window.RuleS.progressListener); 39 | delete window.RuleS; 40 | Services.obs.notifyObservers(null, "startupcache-invalidate", ""); 41 | }, 42 | }; 43 | window.addEventListener("unload", function() { 44 | RuleSimple.onDestroy(); 45 | }, false); 46 | } 47 | 48 | if (window.RuleS) window.RuleSimple.onDestroy(); 49 | 50 | var RuleS = { 51 | debug: true, 52 | urlCheck: [], 53 | urlEnable: [], 54 | RuleStata: [], 55 | isRules: [], 56 | get contentDoc() { 57 | return window.content.document; 58 | }, 59 | }; 60 | 61 | RuleS.init = function() { 62 | this.addIcon(); 63 | this.reload(); 64 | this.onLocationChange(); 65 | RuleS.progressListener = { 66 | onLocationChange: function() { 67 | RuleS.onLocationChange(); 68 | }, 69 | onProgressChange: function() {}, 70 | onSecurityChange: function() {}, 71 | onStateChange: function() {}, 72 | onStatusChange: function() {} 73 | }; 74 | window.getBrowser().addProgressListener(RuleS.progressListener); 75 | }; 76 | 77 | RuleS.addIcon = function(iconPref) { 78 | this.icon = $('urlbar-icons').appendChild($C('image', { 79 | id: 'RuleS-icon', 80 | context: 'RuleS-popup', 81 | src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAATCAYAAACZZ43PAAABZklEQVQ4jaXUMUscURQF4C8bYS0CkoCiRaoUFhYhbbqtUwppUthpmgQUEbQXJATSCEtI/kEgv8HOPm5lSiGNxo2LS1iSdS3mJIyzO9Xeauade869771zHyziEOe4wCcsGY+lYBfJPQxXG3/RxSWG+ICZEnkma8PkdMNpy08fq3iBHk7/qScWs9ZLzmo4XfiBAfawjd/oYL4kMI+TYNvJHYRrJ8o3abGPLTRKAg1sBhsmtxeuJl7iLOAuZicc4ixe4xq/sBbu/2hjhHeV6uV4HoEOHlXBFn7iCm8wV8Ef4kuKfHb3lsD9EPv4gyO8x3rEV3CAYzyb1N49PMGrJA1SbZTv42CPa7anhW/Yx3L+19PFUbrq4226vRNNfE21j3hQweeyvSvFObWqAgv4rriepzUdNhQ3NBILl6uvRf0aG+p9sKvwypnCO00mO3HTuBO31Dhx0iycGJ+FjppZmHoap34PpnqRbgGdL4gddwCpdgAAAABJRU5ErkJggg==", 82 | })); 83 | 84 | this.icon.addEventListener("click", function(event) { 85 | if (event.button == 0) { 86 | document.getElementById('RuleS-popup').openPopup(null, null, event.clientX, event.clientY); 87 | } 88 | }, false); 89 | 90 | let xml = '\ 91 | \ 92 | \ 95 | '; 96 | let range = document.createRange(); 97 | range.selectNodeContents(document.getElementById("mainPopupSet")); 98 | range.collapse(false); 99 | range.insertNode(range.createContextualFragment(xml.replace(/\n|\t/g, ""))); 100 | range.detach(); 101 | }; 102 | 103 | RuleS.reload = function(isAlert) { 104 | var aFile, data, libFile, libData, err, errMsg = []; 105 | aFile = Services.dirsvc.get('UChrm', Ci.nsILocalFile); 106 | aFile.appendRelativePath('lib'); 107 | aFile.appendRelativePath('_RuleS.js'); 108 | if (!aFile || !aFile.exists() || !aFile.isFile()) { 109 | if (isAlert) this.alert('配置文件不存在'); 110 | return log('配置文件不存在'); 111 | } 112 | this.configFile = aFile; 113 | data = this.loadFile(aFile); 114 | if (isAlert && (!data)) return this.alert('ReLoad Error: 配置文件错误'); 115 | 116 | var sandbox = new Cu.Sandbox(new XPCNativeWrapper(window)); 117 | sandbox.Components = Components; 118 | sandbox.Cc = Cc; 119 | sandbox.Ci = Ci; 120 | sandbox.Cr = Cr; 121 | sandbox.Cu = Cu; 122 | sandbox.Services = Services; 123 | sandbox.locale = Services.prefs.getCharPref("general.useragent.locale"); 124 | 125 | try { 126 | Cu.evalInSandbox(data, sandbox, "1.8"); 127 | } catch (e) { 128 | this.alert('ReLoad Error: ' + e + '\n请重新检查配置文件'); 129 | return; 130 | } 131 | this.resetState(); 132 | this.removeMenu(); 133 | this.Rules = sandbox.Rules; 134 | 135 | this.buildPopup(this.Rules); 136 | this.onLocationChange(); 137 | if (isAlert) this.alert('配置已经重新载入'); 138 | }; 139 | 140 | RuleS.removeMenu = function() { 141 | let menuitems = document.querySelectorAll("menuitem[id^='RuleS-item-']"); 142 | if (!menuitems) return; 143 | for (let i = 0; i < menuitems.length; i++) { 144 | menuitems[i].parentNode.removeChild(menuitems[i]); 145 | } 146 | }; 147 | 148 | RuleS.buildPopup = function(menu) { 149 | var popup = $("RuleS-popup"); 150 | var obj, menuitem; 151 | for (var i = 0; i < menu.length; i++) { 152 | this.RuleStata[i] = false; 153 | this.isRules[i] = menu[i].isRules || true; 154 | obj = menu[i]; 155 | if (obj.label === "separator" || (!obj.label && !obj.ctype && !obj.url && !obj.cval)) 156 | menuitem = document.createElement("menuseparator"); 157 | else 158 | menuitem = document.createElement("menuitem"); 159 | 160 | menuitem.setAttribute("label", obj.label); 161 | menuitem.setAttribute("id", "RuleS-item-" + i); 162 | menuitem.setAttribute("type", "checkbox"); 163 | menuitem.setAttribute("class", "RuleS-item"); 164 | menuitem.setAttribute('checked', this.isRules[i]); 165 | menuitem.setAttribute("oncommand", "RuleS.toggle('" + i + "');"); 166 | popup.insertBefore(menuitem, $("RuleS-sepalator1")); 167 | $("RuleS-sepalator1").hidden = false; 168 | } 169 | }; 170 | 171 | RuleS.toggle = function(i) { 172 | if (i == 0 || i) { 173 | this.resetState(); 174 | this.isRules[i] = !this.isRules[i]; 175 | $("RuleS-item-" + i).setAttribute('checked', this.isRules[i]); 176 | } 177 | this.onLocationChange(); 178 | }; 179 | 180 | RuleS.Edit = function() { 181 | var aFile = this.configFile; 182 | if (!aFile || !aFile.exists() || !aFile.isFile()) return this.alert('配置文件不存在'); 183 | var editor; 184 | try { 185 | editor = Services.prefs.getComplexValue("view_source.editor.path", Ci.nsILocalFile); 186 | } catch (e) { 187 | this.alert("请设置编辑器的路径。\nview_source.editor.path"); 188 | toOpenWindowByType('pref:pref', 'about:config?filter=view_source.editor.path'); 189 | return; 190 | } 191 | var UI = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 192 | UI.charset = window.navigator.platform.toLowerCase().indexOf("win") >= 0 ? "gbk" : "UTF-8"; 193 | var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess); 194 | 195 | try { 196 | var path = UI.ConvertFromUnicode(aFile.path); 197 | var args = [path]; 198 | process.init(editor); 199 | process.run(false, args, args.length); 200 | } catch (e) { 201 | this.alert("编辑器不正确!") 202 | } 203 | }; 204 | /*****************************************************************************************/ 205 | RuleS.onLocationChange = function() { 206 | if (this.Rules) { 207 | var contentUrl = this.contentDoc.URL; 208 | if (!this.urlCheck[contentUrl]) { 209 | this.urlCheck[contentUrl] = true; 210 | this.urlEnable[contentUrl] = []; 211 | for (var i = 0; i < this.Rules.length; i++) { 212 | for (var j = 0; j < this.Rules[i].url.length; j++) { 213 | if (new RegExp(this.Rules[i].url[j]).test(contentUrl)) { 214 | this.urlEnable[contentUrl].push(i); 215 | } 216 | } 217 | } 218 | } 219 | this.changeRuleState(this.urlEnable[contentUrl]); 220 | } 221 | }; 222 | 223 | RuleS.changeRuleState = function(list) { 224 | if (list && list.length !== 0) { 225 | for (var i = 0; i < list.length; i++) { 226 | var n = list[i]; 227 | if (!this.RuleStata[n]) { 228 | this.docommand(n); 229 | this.RuleStata[n] = true; 230 | } 231 | for (var j = 0; j < this.RuleStata.length; j++) { 232 | if (j !== n && this.RuleStata[j]) { 233 | this.docommand(j); 234 | this.RuleStata[j] = false; 235 | } 236 | } 237 | } 238 | } else 239 | this.resetState(); 240 | }; 241 | 242 | RuleS.resetState = function() { 243 | for (var i = 0; i < this.RuleStata.length; i++) { 244 | if (this.RuleStata[i]) { 245 | this.docommand(i); 246 | this.RuleStata[i] = false; 247 | } 248 | } 249 | }; 250 | 251 | RuleS.docommand = function(i) { 252 | if ((i == 0 || i) && this.isRules[i]) { 253 | var ctype = this.Rules[i].ctype, 254 | cval = this.Rules[i].cval; 255 | if (ctype == 'id') 256 | $(cval).click(); 257 | else if (ctype == 'command') 258 | cval(); 259 | else if (ctype == 'label') 260 | document.querySelectorAll("menuitem[label^='" + cval + "']")[0].click(); 261 | } 262 | }; 263 | /*****************************************************************************************/ 264 | RuleS.alert = function(aString, aTitle) { 265 | Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlertNotification("", aTitle || "RuleS", aString, false, "", null); 266 | }; 267 | 268 | RuleS.loadFile = function(aFile) { 269 | var fstream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); 270 | var sstream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); 271 | fstream.init(aFile, -1, 0, 0); 272 | sstream.init(fstream); 273 | var data = sstream.read(sstream.available()); 274 | try { 275 | data = decodeURIComponent(escape(data)); 276 | } catch (e) {} 277 | sstream.close(); 278 | fstream.close(); 279 | return data; 280 | }; 281 | 282 | function log(str) { 283 | if (RuleS.debug) Application.console.log("[RuleS] " + Array.slice(arguments)); 284 | } 285 | 286 | function $(id) document.getElementById(id); 287 | 288 | function $C(name, attr) { 289 | var el = document.createElement(name); 290 | if (attr) Object.keys(attr).forEach(function(n) el.setAttribute(n, attr[n])); 291 | return el; 292 | } 293 | 294 | RuleS.init(); 295 | window.RuleS = RuleS; 296 | })() -------------------------------------------------------------------------------- /RuleS/_RuleS.js: -------------------------------------------------------------------------------- 1 | var Rules = [{ 2 | label: "GrabScroll",//规则名 3 | ctype:"id",//定位功能的类型,支持id,label,command 4 | cval:"GrabScroll_enable",//定位功能的值 5 | url:[//启用的URL,通配,支持正则 6 | "^(http://read.qidian.com/)", 7 | "^(http://www.69zw.com/)" 8 | ] 9 | }]; -------------------------------------------------------------------------------- /Saying/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Saying/1.gif -------------------------------------------------------------------------------- /Saying/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Saying/1.png -------------------------------------------------------------------------------- /Saying/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Saying/2.gif -------------------------------------------------------------------------------- /Saying/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/Saying/2.png -------------------------------------------------------------------------------- /Saying/README.md: -------------------------------------------------------------------------------- 1 | Saying 2 | ============ 3 | 4 | - 地址栏显示自定义语句,根据网址切换。 5 | - 目前可自动获取并更新。 6 | - 每次关闭浏览器后数据库添加获取过的内容,并去重复。 7 | - 左键图标复制内容,中键重新获取,右键弹出菜单。 8 | - 其他详细设置请参照脚本内的设置。 9 | - API和规则在_Saying.js自己添加,此文件脚本只读取,格式请参照例子。 10 | - 自定义内容可在_Saying.js自己添加,此文件脚本只读取,格式请参照例子。 11 | - 设置项左键打开设置窗口,中键重载配置,右键:编辑配置文件。 12 | - 数据库位置: 13 | 14 | Chrome\lib\_Saying.js 15 | Chrome\lib\Saying_*.json 16 | 17 | ![](1.png) 18 | ![](2.png) 19 | 20 | ![](1.gif) 21 | 22 | ![](2.gif) -------------------------------------------------------------------------------- /Saying/lib/Saying_VeryCD.json: -------------------------------------------------------------------------------- 1 | ["就算是Believe,中间也有一个lie。","点背不能怨社会,命苦不能怨父母。","因为需要这样的你,所以世界造就了这样的你。","秀木参天齐,寸草谁人知。狂风疾过处,一片碧绿青。","受伤这种事是常有的,但是你要保持一个完完整整的自己做什么用呢?你非要把自己保卫得好好的不可吗?","随缘不是得过且过、因循苟且,而是尽人事听天命","勇于接受别人的批评,正好可以调整自己的缺点","我们必须接受失望,因为它是有限的,但千万不可失去希望,因为它是无穷的","生如夏花之绚烂,死如秋叶之静美","自知不自见,自爱不自贵","学如驾车登山,不进就退;学如逆水行舟,不进则退","手指有长有短,知识有高有低","才华是刀刃,辛苦是磨刀石","瞄准还不是射中,起跑还不算到达","友谊可以筑起一道坚实的防线","羞耻心是所有品德的源泉","朋友就是另一个我","自由的目的是为了为他人创造自由","三人行,必有我师焉","Pain past is pleasure.","学无前后,达者为师","你的言语,我爱听,却不懂得,我的沉默,你愿见,却不明白","很多时候,冲动里面有一种快感,而另一些时候,远离则是一种操守","学习如钻探石油,钻得愈深,愈能找到知识的精髓","没有艰苦的学习,就没有最简单的发明","坐而论道,不如起而行动","我的世界有我的真理,正义的立场由我决定","人没有自由,犹如木偶","沉默是诽谤最好的答复","Nothing is impossible to a willing heart.","要得惊人艺,须下苦功夫","常说口里顺,常做手不笨","不向前走,不知路远;不努力学习,不明白真理","一个人只有一个命运","超越自我","每一天都是一个全新的开始","能说不能行,不是真智慧","心之所愿,无所不成","学而时习之,不亦乐乎","室雅何须大,花香不在多","学习如赶路,不能慢一步","一个吻,你就知道了我所有沉默的心事","青春如果太切合实际,就不配叫做青春了","只要你明白要为自己的贪念计算和付出代价,你的心便会释然。困难是自己种出来的","愚痴的人,一直想要别人了解他。有智慧的人,却努力地了解自己","欲速则不达","无情未必真英豪","老骥伏枥,志在千里;烈士暮年,壮心不已","谁游乐无度,谁没空学习","选择只是短短几秒钟的事,然后用余下的时间来还债","顺从灼热的激情,这既是最容易的,又是最困难的","我想象我们能够彼此看上一眼,然后对着黑压压的血淋淋的整个世界说:我呸","搓绳不能松劲,前进不能停顿","世界不是天才创造的","睡觉是为了踏实地工作,工作是为了踏实地睡觉","读一书,增一智","拳不离手,曲不离口","一个人的生活方式决定一切,甚至人的思维","无论怎么样,一个人借故堕落总是不值得原谅的,越是没有人爱,越要爱自己","上台阶尽管费力,却一步比一步高","创新一点点","人家怕你,并不是一种福;人家欺你,并不是一种辱","当你对自己诚实的时候,世界上没有人能够欺骗得了你","戏言不能伤敌但能伤友","君子忧道不忧贫","事业常成于坚忍,毁于急躁","怕问路,要迷路","茂盛的禾苗需要水分;成长的少年需要学习","这个世界只有圆滑,没有圆满的","你希望掌握永恒,那你必须控制现在","宝剑不磨要生锈;人不学习要落后","我要发表心灵,而不公开隐私","在被遗忘以前,我们会变为媚俗。媚俗,是存在与遗忘之间的中转站","不能则学,不知则问,耻于问人,决无长进","只有努力攀登顶峰的人,才能把顶峰踩在脚下","学历代表过去,学习力掌握将来","心是最大的骗子,别人能骗你一时,而它却能骗你一辈子","安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山","井淘三遍吃好水,人从三师武艺高","好问不须脸红,无知才应羞耻","诸恶莫作,众善奉行","不是事业为了思想,而是思想为了事业","生活的理想,就是为了理想的生活","灵感,不过是顽强地劳动而获得的奖赏","逆境中不自弃,顺境中不张扬","生活给了我想要的东西,又让我认识到那没什么意义","如果爱情是个手指,把它剁掉就行了","星星使天空绚烂夺目;知识使人增长才干","这个世界本身就没有所谓的清白而言,你能坦言,你从来就没说过慌,这是自欺欺人","人和人的心最远又最近,真诚便是中间的通道","一个不想蹚过小河的人,自然不想远涉重洋","教育不是灌输,而是点燃火焰","学在苦中求,艺在勤中练","一个不能为自己挺身而出的孩子,长大之后只能是个懦夫","到了熟透的年龄,即使在群众的怀抱中,你都可能觉得寂寞无比","讳疾忌医的人找不到良药","与其事过境迁还不时地感叹,不如用心地好好珍惜所有","一个人的价值,应该看他贡献什么,而不应当看他取得什么","塞翁失马,祸兮福倚。得丧荣辱,奚足介意","请教别人不折本,舌头打个滚","奈何一个人随着年龄增长,梦想便不复轻盈;他开始用双手掂量生活,更看重果实而非花朵","困难是人的教科书","巨大财富的背后,都隐藏着罪恶","如果你不和家人在一起,你就永远无法成为真正的男人","人生在世界是短暂的,对这短暂的人生,我们最好的报答就是工作","不要浪费你的生命在你一定会后悔的地方上","不是某人使我烦恼,而是我拿某人的言行来烦恼自己","一个不是我们有所求的朋友才是真正的朋友","志不立,天下无可成之事","若要精,人前听","人生的价值,并不是用时间,而是用深度去衡量的","古之君子如抱美玉而深藏不市,后之人则以石为玉而又炫之也","嘴勤不走冤枉路","快乐是吞咽的,悲伤是咀嚼的;如果咀嚼快乐,会嚼出悲伤来的","生活中的万事万物,无不可以吸收教益,无不可以成文,只要“求思之深而无不在”,定能有所得益","真正没有资格谈明天的人,是那个不懂得珍惜今天的人","嫉妒就是承认己不如人","原谅别人,就是给自己心中留下空间,以便回旋","太过于欣赏自己的人,不会去欣赏别人的优点","把希望建筑在意欲和心愿上面的人们,二十次中有十九次都会失望","天生我才必有用,千金散尽还复来","边学边问,才有学问","一分耕耘,一分收获","今天的执着,会造成明日的后悔","你什么时候放下,什么时候就没有烦恼","精神里需要的东西,超出现实的负荷,是失败的一个原因","来是偶然的,走是必然的。所以你必须,随缘不变,不变随缘","忌妒别人,不会给自己增加任何的好处;忌妒别人,也不可能减少别人的成就","人生得一知己足已,斯世当以同怀视之","不怕学问浅,就怕志气短","人并不逃避别人,人逃避他自己","让朋友低估你的优点,让敌人高估你的缺点","世间的活动,缺点虽多,但仍是美好的","那时你还年轻,肾上腺素在血管里拥挤得像一袋跳跳糖","书籍备而不读如废纸","粮食补身体,书籍丰富智慧","我为人人,人人为我","认识自己,降伏自己,改变自己,才能改变别人","勿以恶小而为之,勿以善小而不为。惟贤惟德,能服于人","不吃饭则饥,不读书则愚","针越用越明,脑越用越灵","树不修,长不直;人不学,没知识","我们确实有如是的优点,但也要隐藏几分,这个叫做涵养","君子在下位则多谤,在上位则多誉;小人在下位则多誉,在上位则多谤","还有什么不快乐?","不听指点,多绕弯弯","只要是有益的话,小孩的话也要听","寻找本身就是一种幸福","自以为拥有财富的人,其实是被财富拥有","毁灭一个人只要一句话,培植一个人却要千句话,请你口下留情","天若有情天亦老,人间正道是沧桑","星星之火,可以燎原","最艰苦之时,便是胜利将到之日","智者千虑,必有一失;愚者千虑,必有一得","要不得谦词是废话","和你一同笑过的人,你可能把他忘掉;但是和你一同哭过的人,你却永远不忘","志当存高远","一天一苹果,疾病远离我","我们即使发了一千次短信,心与心的距离大概也只靠近了一厘米。","只要自觉心安,东西南北都好。如有一人未度,切莫自己逃了","心中装满着自己的看法与想法的人,永远听不见别人的声音","二十岁不狂是没有志气,三十岁犹狂是没有头脑","知识好象砂石下面的泉水,越掘得深泉水越清","注意力是智慧的门户","要知道你用食指指着别人大骂时,手中另外三个指头是指着自己的","其实爱美的人,只是与自己谈恋爱罢了","广结众缘,就是不要去伤害任何一个人","造烛求明,读书求理","心坚石也穿","苦心中,常得悦心之趣;得意时,便生失意之悲","上不忧天,下不忧人","苟利国家生死以,岂因祸福避趋之","目标愈高,志向愈可贵","如果你能像看别人缺点一样,如此准确地发现自己的缺点,那么你的生命将会不平凡","你的选择是做或不做,但不做就永远不会有机会","独立的人格,自由的精神","逆境是成长必经的过程,能勇于接受逆境的人,生命就会日渐的茁壮","不懂得自爱的人,是没有能力去爱别人的","人生的真理,只是藏在平淡无味之中","All things are difficult before they are easy.","不要憎恨你的敌人,那会影响你的判断力","站在光明中看到的只是黑暗,站在黑暗中却拥有光明","十日画一水,五日画一石","若能一切随他去,便是世间自在人","一身报国有万死,双鬓向人无再青","正人行邪法,邪法亦正,邪人行正法,正法亦邪,一切唯心造","宠辱不惊,看庭前花开花落。得失俱忘,观天上云卷云舒","想象力比知识更重要","不要在智慧中夹杂着傲慢,不要使谦虚缺乏智慧","君,当如竹,坚韧挺拔显气概","最远的旅行,是从自己的身体到自己的心,是从一个人的心到另一个人的心","必须洗净一切往事,否则你永远无法清楚自由地看这个世界","如何能得到快乐:抛弃仇恨、远离烦恼、生活简单、淡泊名利、为人着想、笑口常开、心中有爱","创造机会的人是勇者;等待机会的人是愚者","无事莫把闲话聊,是非往往闲话生","一切出发点和落脚点都该是:胸怀坦荡和问心无愧。阳光底下留不住秘密","离你的朋友近些,但离你的敌人要更近,这样你才能更了解他","把自己当傻瓜,不懂就问,你会学的更多","博学而笃志,切问而近思","蜂采百花酿甜蜜,人读群书明真理","一艺之成,当尽毕生之力","没有行动的构想是白日梦,没有构想的行动是恶梦","不自由,毋宁死","有时候解释是不必要的,敌人不信你的解释,朋友无需你的解释","只要功夫深,铁杵磨成绣花针","劳动是知识的源泉;知识是生活的指南","你的谦逊会使别人感到高兴","夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远","己所不欲,勿施于人","不问的人永远和愚昧在一起","情话的温度有多热,幻灭就可以有多剧烈","重要的不是治愈,而是带着病痛活下去","仁者无忧,智者无惑,勇者无惧","拥有一颗无私的爱心,便拥有了一切","不要因为小小的争执,远离了你至亲的好友,也不要因为小小的恐惧,忘记了别人的大恩","大鹏一日同风起,抟摇直上九万里","君子喻于义,小人喻于利","不懂装懂,永世饭桶","内心让一个人真实地了解自己,一旦了解了自己也就了解了世界","污则欲避,轻则易弃。避则无憾于人,弃则无累于己","勤勉是成功之母","多用心去倾听别人怎么说,不要急着表达你自己的看法","心里有个人放在那里,是件收藏,如此才填充了生命的空白。 太阳尚远,但必有太阳","我已经发现了,无论两条腿怎样努力也不能使两颗心灵更加接近","用宝珠打扮自己,不如用知识充实自己","同时赶两只兔,一只也捉不到","学问渊博的人,懂了还要问;学问浅薄的人,不懂也不问","最淡的墨水,也胜过最强的记性","书山有路勤为径,学海无涯苦作舟","所谓心事,不过是不如己意,那就是我执,执著于自己描画的理想,一有落差,即生烦恼","知识需要反复探索,土地需要辛勤耕耘","我们嘴里的别人的事听起来就像是自己的事;我们说自己的事的时候,却又在像说一段不相干的故事","三军可夺帅也,匹夫不可夺志也","如果一个人很慷慨,那他就必须把自己的慷慨表现得充满感情","寸寸河山寸寸金,瓜离分裂力谁任?杜鹃再拜忧天泪,精卫无穷填海心","只有面对现实,才能超越现实","好记性不如烂笔头","有所成就是人生唯一的真正乐趣","与人相处之道,在于无限的容忍","Where there is a will, there is a way.","天行健,君子以自强不息;地势坤,君子以厚德载物","老姜辣味大,老人经验多","百艺通,不如一艺精","真正的男子渴求着不同的两件事:危险和游戏。","不经过琢磨,宝石也不会发光","快并快乐着!","好高骛远的一无所得,埋头苦干的获得知识","春蚕到死丝方尽,人至期颐亦不休。一息尚存须努力,留作青年好范畴","当你劝告别人时,若不顾及别人的自尊心,那么再好的言语都没有用的","学问之根苦,学问之果甜","宁可自己去原谅原谅别人,莫让别人来原谅你","难得糊涂","God helps those who help themselves.","最足以显示一个人性格的,莫过于他所嘲笑的是什么东西","积累知识,胜过积蓄金银","遗忘完全可以是记忆的一种深沉的形式","有个等待也不错","任何你失去的事物,价值自动倍增","生命是如此的美丽……","不招人妒是庸才","要学蜜蜂采百花,问遍百家成行家","活在别人的掌声中,是禁不起考验的人","试试并非受罪,问问并不吃亏","对人恭敬,就是在庄严你自己","我们从没有忘记真相,只是我们越来越会说谎","生当作人杰,死亦为鬼雄,至今思项羽,不肯过江东","能为别人设想的人,永远不寂寞","如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下","谁给我一滴水,我便回报他整个大海","孤独的人有他们自己的沼泽","多练多乖,不练就呆","达人远见,不与物争。视利犹粪土之污,视权如鸿毛之轻","你若要喜爱你自己的价值,你就得给世界创造价值","走自己的路,让别人去说吧","我们的能力,只能够伤害那些离我们最近的人","长风破浪会有时,直挂云帆济沧海","说一句谎话,要编造十句谎话来弥补,何苦呢?","日日行,不怕千万里;时时学,不怕千万卷","不能以道德、学问和修持的力量,来使人受益,就等于欠了一份债","修行就是修正自己错误的观念","自己不曾拥有,就快乐地欣赏别人的拥有","不要说不可能,没有什么不可能","一个人如果不能从内心去原谅别人,那他就永远不会心安理得","时间总是会过去的,让时间流走你的烦恼吧!","使生活变成幻想,再把幻想化为现实","伟大的人不是生下来就伟大的,而是在成长过程中显示其伟大的","你要感谢告诉你缺点的人","打死不上弹窗广告","学问勤中得,富裕俭中来","爱人者,人恒爱之。敬人者,人恒敬之","知识是智慧的火炬","每一种创伤,都是一种成熟","善于发问的人,知识丰富","为天地立心,为生民立命,为往圣继绝学,为万世开太平","我坚信,人应该有力量,揪着自己的头发把自己从泥地里拔起来","人生的每一步,都可能成为另一个错误;可却不能因为错误,而不迈出下一步","当你宽恕的时候,等于释放了一个囚徒,然后你会发现,那个囚徒就是你自己","心专才能绣得花,心静才能织得麻","人类最大的错误,在于不敢承担圣人的心","玫瑰与元宵共会,祝大家双节快乐 :)","汗水和丰收是忠实的伙伴,勤学和知识是一对最美丽的情侣","妇女能顶半边天","要想富,先种树","消费者权益保护日","清明时节雨纷纷","劳动最光荣","年轻真好","母爱是人生中最大的财富","儿童是祖国的希望","龙舟竞渡闹端阳","祝同学们高考顺利,考出好成绩!","香港回归17周年","七月七日长生殿,夜半无人私语时。在天愿作比翼鸟,在地愿为连理枝。"," 对人恭敬,就是在庄严你自己"," 十日画一水,五日画一石"," 如果你不给自己烦恼,别人也永远不可能给你烦恼。因为你自己的内心,你放不下"," 心之所愿,无所不成"," 好记性不如烂笔头"," 要得惊人艺,须下苦功夫"," 真正的男子渴求着不同的两件事:危险和游戏。"," 我想象我们能够彼此看上一眼,然后对着黑压压的血淋淋的整个世界说:我呸"," 快乐是吞咽的,悲伤是咀嚼的;如果咀嚼快乐,会嚼出悲伤来的"," 心是最大的骗子,别人能骗你一时,而它却能骗你一辈子"," 人和人的心最远又最近,真诚便是中间的通道"," 君子喻于义,小人喻于利"," 爱人者,人恒爱之。敬人者,人恒敬之"," 安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山"," 一个人的生活方式决定一切,甚至人的思维"," 在被遗忘以前,我们会变为媚俗。媚俗,是存在与遗忘之间的中转站"," 一艺之成,当尽毕生之力"," 不要浪费你的生命在你一定会后悔的地方上"," 拥有一颗无私的爱心,便拥有了一切"," 无情未必真英豪"," 星星之火,可以燎原"," 教育不是灌输,而是点燃火焰"," 学无前后,达者为师"," 针越用越明,脑越用越灵"," 边学边问,才有学问"," 灵感,不过是顽强地劳动而获得的奖赏"," 不要在智慧中夹杂着傲慢,不要使谦虚缺乏智慧"," 自己不曾拥有,就快乐地欣赏别人的拥有"," 君,当如竹,坚韧挺拔显气概"," 博学而笃志,切问而近思"," 污则欲避,轻则易弃。避则无憾于人,弃则无累于己"," Nothing is impossible to a willing heart."," All things are difficult before they are easy."," 心专才能绣得花,心静才能织得麻"," 你什么时候放下,什么时候就没有烦恼"," 事业常成于坚忍,毁于急躁"," 拳不离手,曲不离口"," 嘴勤不走冤枉路"," 你的言语,我爱听,却不懂得,我的沉默,你愿见,却不明白"," 孤独的人有他们自己的沼泽"," 如果爱情是个手指,把它剁掉就行了"," 人生的每一步,都可能成为另一个错误;可却不能因为错误,而不迈出下一步"," 我为人人,人人为我"," 人类最大的错误,在于不敢承担圣人的心"," 毁灭一个人只要一句话,培植一个人却要千句话,请你口下留情"," 谁游乐无度,谁没空学习"," 茂盛的禾苗需要水分;成长的少年需要学习"," 让朋友低估你的优点,让敌人高估你的缺点"," 离你的朋友近些,但离你的敌人要更近,这样你才能更了解他"] -------------------------------------------------------------------------------- /Saying/lib/Saying_acman.json: -------------------------------------------------------------------------------- 1 | [{"id":"387","zhaiyan":"我认为你很幸福,因为你可以选择爱或不爱我。而我只能选择爱或更爱你。","cat":"a","catname":"动画","author":null,"show":null,"source":"草莓100%","date":"2015-02-07","img":null,"jp":null},{"id":"589","zhaiyan":"喜欢的人喜欢别人不是很正常吗。","cat":"a","catname":"动画","author":null,"show":null,"source":"四月是你的谎言","date":"2015-03-19","img":null,"jp":null},{"id":"438","zhaiyan":"年轻人,要看清自己,看清世界,才能变得更强","cat":"g","catname":"其他","author":"SJ","show":"群推荐","source":"其他","date":"2015-03-05","img":null,"jp":null},{"id":"2174","zhaiyan":"怀着理想溺死在现实中吧!","cat":"a","catname":"动画","author":null,"show":null,"source":"Fate/stay night","date":"2015-05-31","img":null,"jp":null},{"id":"13","zhaiyan":"魔装少女就是本少爷!","cat":"a","catname":"动画","author":null,"show":null,"source":"这是僵尸吗?","date":"2014-10-01","img":null,"jp":null},{"id":"2616","zhaiyan":"记忆想是倒在掌心的水,不论你摊开还是紧握,终究还是会从指缝中一滴一滴流淌干净。","cat":"f","catname":"来自网络","author":null,"show":null,"source":"来自网络","date":"2015-06-19","img":null,"jp":null},{"id":"2474","zhaiyan":"生活坏到一定程度就会好起来,因为它无法更坏。","cat":"a","catname":"动画","author":null,"show":"宫崎骏","source":"龙猫","date":"2015-06-14","img":null,"jp":null},{"id":"715","zhaiyan":"简直如同童话一般,当恶魔留下眼泪的同时,也就失去了魔力。","cat":"a","catname":"动画","author":null,"show":"灰原哀","source":"名侦探柯南","date":"2015-03-25","img":null,"jp":null},{"id":"122","zhaiyan":"错误可不是为了别人才改的过来的,要为了自己才能改正。","cat":"a","catname":"动画","author":null,"show":null,"source":"XXXHolic","date":"2014-12-20","img":null,"jp":null},{"id":"850","zhaiyan":"时间的沙漏沉淀着无法逃离的过往,记忆的双手总是拾起那些明媚的忧伤。","cat":"b","catname":"漫画","author":null,"show":null,"source":"穿越西元3000后","date":"2015-04-02","img":null,"jp":null},{"id":"200","zhaiyan":"雾可以阻挡天空的视线,却不能锁住天空前进的脚步。","cat":"a","catname":"动画","author":null,"show":null,"source":"家庭教师","date":"2014-12-31","img":null,"jp":null},{"id":"1743","zhaiyan":"再没有什么比幸福的回忆更妨碍幸福的了。","cat":"a","catname":"动画","author":null,"show":null,"source":"起风了","date":"2015-05-15","img":null,"jp":null},{"id":"1381","zhaiyan":"没有人会知道,在这表面光鲜亮丽的天才形象下,我真实的想法,我一直在追寻失误,没有失误就不是游戏了。","cat":"a","catname":"动画","author":null,"show":null,"source":"神不在的星期天","date":"2015-04-28","img":null,"jp":null},{"id":"495","zhaiyan":"正因为生来什么都没有,因此我们能拥有一切。","cat":"d","catname":"小说","author":null,"show":null,"source":"NO GAME NO LIFE","date":"2015-03-12","img":null,"jp":null},{"id":"164","zhaiyan":"教练,我想打篮球!","cat":"a","catname":"动画","author":null,"show":null,"source":"灌篮高手","date":"2014-12-26","img":null,"jp":null},{"id":"805","zhaiyan":"活着本来没有什么意义 但是只要活着 就可以找到 有趣的事情。就像你发现了花 我又发现了你一样","cat":"a","catname":"动画","author":null,"show":"大蛇丸","source":"火影忍者","date":"2015-03-29","img":null,"jp":null},{"id":"1125","zhaiyan":"远的不是距离,而是次元啊。","cat":"a","catname":"动画","author":null,"show":"安艺伦也","source":"路人女主的养成方法","date":"2015-04-14","img":null,"jp":null},{"id":"784","zhaiyan":"除了死亡,其他的离开都是背叛。","cat":"a","catname":"动画","author":null,"show":null,"source":"黑执事","date":"2015-03-28","img":null,"jp":null},{"id":"698","zhaiyan":"只要和你有关的任何事情我都不会忘记。","cat":"a","catname":"动画","author":null,"show":"柯南","source":"名侦探柯南","date":"2015-03-24","img":null,"jp":null},{"id":"679","zhaiyan":"无论你有多强,也别想着独自背负所有,因为那样一来,你必然失败。","cat":"a","catname":"动画","author":null,"show":null,"source":"火影忍者","date":"2015-03-31","img":null,"jp":null},{"id":"303","zhaiyan":"人们以为,最伤心的回忆来自痛苦的经历,其实最伤心的回忆莫过于,那些无法再现的幸福的经历。","cat":"a","catname":"动画","author":null,"show":null,"source":"黑执事","date":"2015-01-05","img":null,"jp":null},{"id":"2518","zhaiyan":"人类,就是一直在重复过去的道路。","cat":"a","catname":"动画","author":null,"show":"宫崎骏","source":"风之谷","date":"2015-06-15","img":null,"jp":null},{"id":"1454","zhaiyan":"如果没有遇到她,我将会无法前进。","cat":"d","catname":"小说","author":null,"show":null,"source":"学生会的一己之见","date":"2015-05-01","img":null,"jp":null},{"id":"1274","zhaiyan":"你愿用一生,等待,然后呵护这短暂的光亮吗?即使,明知它会消失。","cat":"a","catname":"动画","author":null,"show":null,"source":"萤火虫之墓","date":"2015-04-22","img":null,"jp":null},{"id":"35","zhaiyan":"风停之后再扬帆,船绝不会前行。","cat":"d","catname":"小说","author":null,"show":null,"source":"分身","date":"2014-10-02","img":null,"jp":null},{"id":"2277","zhaiyan":"人类最强烈的感情就是憎恨!","cat":"d","catname":"小说","author":null,"show":null,"source":"文学少女","date":"2015-06-05","img":null,"jp":null}] -------------------------------------------------------------------------------- /Saying/lib/_Saying.js: -------------------------------------------------------------------------------- 1 | /*****************************/ 2 | //API配置 3 | /*****************************/ 4 | var SayingTypes = { 5 | //示例 6 | 'VeryCD': { //名称 7 | API: "http://www.verycd.com/statics/title.saying", //地址 8 | Word: null, //JSON返回 语句字段 9 | Source: null, //JSON返回 作者字段 10 | ReadFunc: function(req) { //如果不是JSON,其他请自行读取 11 | var Start = req.indexOf("(") + 1; 12 | var End = req.indexOf(")"); 13 | var world = req.substring(Start, End); 14 | world = world.replace(/'/ig, ""); 15 | world = world.split(","); 16 | world.forEach(function(t) { 17 | Saying.LibPush('VeryCD', t); //****放入本地数据库/ 18 | }) 19 | val = world[Math.floor(Math.random() * world.length)]; 20 | return val; //返回查询处理后的单条结果 21 | }, 22 | ShowFunc: function(val) { 23 | return val; //就是上面那个 用于显示 24 | } 25 | }, 26 | 'Hitokoto': { 27 | API: "http://api.hitokoto.us/rand", 28 | Word: 'hitokoto', 29 | Source: 'source' 30 | }, 31 | 'Acman': { 32 | API: "http://zyfree1.acman.cn/", 33 | Word: 'zhaiyan', 34 | Source: 'source' 35 | } 36 | }; 37 | /*****************************/ 38 | //自定义摘录语句 39 | /*****************************/ 40 | var SayingData = [{ 41 | "Source": "自己", //显示 42 | "Saying": "人生,一人一生", //显示 43 | "随意": "备注", //备注 44 | "date": "2015-02-07", //备注 45 | "CustFunc": function(url) { //自定义行为函数,url为当前页面url 46 | console.log(url); 47 | } 48 | }, { 49 | "Source": "自己", 50 | "Saying": "请不要把爱好当做愿望", 51 | "随意": "备注", 52 | "date": "2015-02-07" 53 | }]; -------------------------------------------------------------------------------- /StarUrlicon.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name StarUrlicon.uc.js 3 | // @author feiruo 4 | // @description Australis 收藏按钮移动到地址栏 5 | // @charset utf-8 6 | // @include chrome://browser/content/browser.xul 7 | // @homepage https://github.com/feiruo/userchromejs/ 8 | // @inspect window.StarUrlicon 9 | // @startup window.StarUrlicon.init(); 10 | // @shutdown window.StarUrlicon.onDestroy(); 11 | // @homepageURL https://github.com/feiruo/userchromejs/ 12 | // @downloadURL https://github.com/feiruo/userChromeJS/blob/master/StarUrlicon.uc.js 13 | // @note Australis收藏按钮移动到地址栏,参考黒仪大螃蟹的BMStar.uc.js(http://pan.baidu.com/share/link?uk=2467242534&shareid=545029) 14 | // @version 1.2 2016.08.24 16:00 随Firefox版本更新; 15 | // @version 1.1 左键添加书签,中键删除当前页面书签,右键 打开/隐藏 书签侧栏。 16 | // ==/UserScript== 17 | location == "chrome://browser/content/browser.xul" && (function(CSS) { 18 | if (window.StarUrlicon) { 19 | window.StarUrlicon.onDestroy(); 20 | delete window.StarUrlicon; 21 | } 22 | 23 | var StarUrlicon = { 24 | Prefs: Services.prefs.getBranch("userChromeJS.StarUrlicon."), 25 | StarBtn: $('bookmarks-menu-button'), 26 | init: function() { 27 | if (!this.StarBtn) return; 28 | this.StarBtnOrg = this.StarBtn.parentNode; 29 | $('urlbar-icons').appendChild(this.StarBtn); 30 | this.LoadSetting(); 31 | this.Prefs.addObserver('', this.PrefsObs, false); 32 | }, 33 | onDestroy: function() { 34 | this.StarBtnOrg.appendChild(this.StarBtn); 35 | this.AddStyle(false, 'Dropmarker', "#bookmarks-menu-button > dropmarker{visibility:collapse!important;}"); 36 | this.Prefs.removeObserver('', this.PrefsObs, false); 37 | this.AddAssis(false, 'Global', CSS); 38 | }, 39 | LoadSetting: function(type) { 40 | if (!type || type === "Dropmarker") 41 | this.AddStyle(this.GetPrefs(0, "Dropmarker", true), 'Dropmarker', "#bookmarks-menu-button > dropmarker{visibility:collapse!important;}"); 42 | 43 | if (!type || type === "Assistant") 44 | this.AddAssis(this.GetPrefs(0, "Assistant", true)); 45 | 46 | if (!type || type === "CSS") 47 | this.AddStyle(this.GetPrefs(0, "CSS", true), 'Global', CSS); 48 | }, 49 | PrefsObs: function(subject, topic, data) { 50 | switch (topic) { 51 | case 'nsPref:changed': 52 | switch (data) { 53 | case 'Dropmarker': 54 | case 'CSS': 55 | case 'Assistant': 56 | StarUrlicon.LoadSetting(data); 57 | break; 58 | } 59 | break; 60 | } 61 | }, 62 | EventListener: function(event) { 63 | event.preventDefault(); 64 | event.stopPropagation(); 65 | switch (event.button) { 66 | case 0: 67 | PlacesCommandHook.bookmarkCurrentPage(true); 68 | break; 69 | case 1: 70 | var uri = gBrowser.selectedBrowser.currentURI; 71 | var itemId = PlacesUtils.getMostRecentBookmarkForURI(uri); 72 | var navBookmarksService = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService); 73 | navBookmarksService.removeItem(itemId); 74 | break; 75 | case 2: 76 | toggleSidebar('viewBookmarksSidebar'); 77 | break; 78 | } 79 | }, 80 | AddAssis: function(isAlert) { 81 | this.StarBtn.removeEventListener("click", StarUrlicon.EventListener, false); 82 | if (!isAlert) return; 83 | this.StarBtn.addEventListener("click", StarUrlicon.EventListener, false); 84 | }, 85 | AddStyle: function(isAlert, n, css = '', SHEET = 'AGENT_SHEET') { 86 | this.CSSList || (this.CSSList = []) 87 | if (typeof isAlert == 'string') { 88 | css = n; 89 | n = isAlert; 90 | isAlert = true; 91 | } 92 | this.CSSList[n] = makeURI('data:text/css,' + encodeURIComponent(css)); 93 | var SSSS = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); 94 | try { 95 | SSSS.unregisterSheet(this.CSSList[n], SSSS[SHEET]); 96 | } catch (ex) {} 97 | if (!isAlert) return; 98 | SSSS.loadAndRegisterSheet(this.CSSList[n], SSSS[SHEET]); 99 | }, 100 | GetPrefs: function(type, name, val) { 101 | switch (type) { //https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Preferences 102 | case 0: 103 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_BOOL) this.Prefs.setBoolPref(name, val ? val : false); 104 | return this.Prefs.getBoolPref(name); 105 | case 1: 106 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_INT) this.Prefs.setIntPref(name, val ? val : 0); 107 | return this.Prefs.getIntPref(name); 108 | case 2: 109 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) this.Prefs.setCharPref(name, val ? val : ""); 110 | return this.Prefs.getCharPref(name); 111 | case 3: 112 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) this.Prefs.setComplexValue(name, Ci.nsILocalFile, makeURI(val).QueryInterface(Ci.nsIFileURL).file); 113 | return this.Prefs.getComplexValue(name, Ci.nsILocalFile); 114 | case 4: 115 | if (!this.Prefs.prefHasUserValue(name) || this.Prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) { 116 | var aFile = Cc["@mozilla.org/pref-relativefile;1"].createInstance(Ci.nsIRelativeFilePref); 117 | aFile.relativeToKey = "UChrm"; 118 | var path = Services.io.newFileURI(FileUtils.getDir("UChrm", '')).spec + val.replace(/^(\/\/|\\)/i, '').replace(/\\/ig, '/'); 119 | aFile.file = makeURI(path).QueryInterface(Ci.nsIFileURL).file; 120 | this.Prefs.setComplexValue(name, Ci.nsIRelativeFilePref, aFile || this[name]); 121 | } 122 | return this.Prefs.getComplexValue(name, Ci.nsIRelativeFilePref).file; 123 | default: 124 | break; 125 | } 126 | } 127 | }; 128 | 129 | function $(id) document.getElementById(id); 130 | 131 | StarUrlicon.init(); 132 | window.StarUrlicon = StarUrlicon; 133 | })('\ 134 | #bookmarks-menu-button {\ 135 | list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAtCAYAAABxsjF3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZBNDg1MTEzOUU3QjExREY4RTNGQTY4REEwRDA4Mjk4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZBNDg1MTE0OUU3QjExREY4RTNGQTY4REEwRDA4Mjk4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkE0ODUxMTE5RTdCMTFERjhFM0ZBNjhEQTBEMDgyOTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkE0ODUxMTI5RTdCMTFERjhFM0ZBNjhEQTBEMDgyOTgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5XGR7dAAAHOUlEQVR42oxWe2xT5xU/9+m3r9+PBJssIQ6JE9KkCSGBQCA0CaMNUYtg3RhsqyZVaNJEO61QadJWtFFVW//YupVqYqjatNFtQgpkrIXSsbGwFZLQPCAvUgJJiHFwYseOr+1r37vzeU21gJl6paPznfP9fv7ued3PlKIokOvx+Z/wUTT9O0WW94zd+GQyF4aGxzyCxfo9b2FxnkEwH3ocJid57boan9FkbbXaXYrJYu1Yu+5J7xcmG4zCSxzPJ3a1bX2FaJ3e8HIuHLu8KCwpL8AYfWqt1mdzuHeYDJqu53d3dHae/cvGeNzU4a+uG02I4hjm4Nano0PZHLBryirfxpOesrny1BQ6OF4FCAi3bGs6ieZSS3PTyXd//6dGwWJ/VS+lgKS3asPmRHQx8j61cWvbb41WexPLcVDlL/nZztbtI+trqh8gZgAlhcKjVFzt6bOf+ev5soHh8UNSSoLo/Nwl+jfv/OINGjKjmXRa+cc/u7VIvIjgns+I8JnuJf7uK1e0BMfQyjDhAdaZvtbTV9f89O5LtZufmi7w+Q+Q2j8sXyrxHyD7255+7tLg0M0awlveZC93X2lobG2/7n+yfjAXmfgbW5/pvdbbtwFthviWS5Xe1FB/LZVKZYyCEMxVFpNgupdKppI11VUkpMyKOnuKSkAUE3aNWj1NbLe3sClv9Zp33asLm4jNq/iAmBDdnsIS5ZE6a9WaIgqfmCj6i8ur39MZhQaO42VJkrahfcXicBQBUCzLsasQfmfFySq1qpRoWQa7Wq/z1detP3H+7On99XW1J1QajV9RKDtQlKLVass/j2U5IVtbvtxRWlXXv2ffN398e/JOA/qcJKNET965u+m5r+5/o7Rqff/2Hc+0LXOoPZusQGHfnLocMpMuRZlFCfz6oKs2FpO6NFqu5cXjgX6SBhQXyq2vNNoiSAdqb6MF/B7NI9m16qm/51c0bZ7qv/DBQpxte3j/xpSIMef4FjgMqTpnyYbG5q+9BmZvZYtZK1U+AlKo3COZSNPHKrfuw7hkqGl7ASQpc+xRrgLs8sFmbaJSVuTqdBoqbKtrmywOD7UQGAGbu4gy5a9tU6Zv/JRhqAGapvvDorofuUD95HnDh1qzZ4vZuYrNL6wAV0EpOL1lkE5EIBkLgtrgAobXQ+DuMMzevgEzEwMQCc6k4+GZv7GZjAwGp49tf/F1YDkG0mIYFCmG7xUHRsMCJceAARWsWlMJBf4tkEyIcPr4ETY6P0UzO6r40wvBwO60LFtNZiybFMZEJIHnOeA5FTAsC3JaxDeJwVIsCtcu/BHGe84Nq7lMM2MRDKl8If6H6YmhDr3JbvUUVQDH0SgaoDk1MAxPmhJoVg/93e/D1fMnRhkqUd8/rVnMZluiLCFeiWz6+OyvggyvBVZlABrjpPn/apY3IpmHf3e9NcPBUoNCWzA2hQwGlc22xLjmDFo5Q9Ec4HF4KjYOzWCzZ0CWRFBSIqg0qmRCMs9//uktt4eyCyoxw6u1gpPC15Qx6rnADNwavAoPgrPYRwzIShp0RquXScwwBF/umAc2hWPNka9BGtborR56IRSE+5MDyt2hc9RI78eZ0toGxutvUwSrk+K1FjaVBi+ybyMemAYcBU5jhORSdAvwxj2pxDxcOvXz4J2Roe8nRXHv9K0xLG13QzQa1ITuhyAamfuIUxtHEQ/Uy61kiLNvvhPlHczgm2i+jWvxfwZeg77vovEdWob9Mg0fEQ71uFty70ZnGcvQF9MZufm97vs3c2GoY4fac5Knxm926jR0+5Ion/EUl+36whfd7ZGBSk+eob3MlwdEE/v/XnQr5tlmOlpU4AC32ww6nQqWROUoutsfS775yfW1HEuvs5q15cVF9p2rvTawmPXY3wyEo+LO8Ynx10IL8SEpLQ+UPVE1kiUP9vacU/F0q9Omoy1mLbjsJigpdoPNbga9jse25MBfotAszfwgMBeG+YU4jA32ycmU/AHrcucJNiFD+4pc4LALIAg6EEx60Gg02QHR0zzkswzoDRqIRJYgOBeBsYkA/SDCCMyfuz4cG+vvftZl5dVejx3MVgG0Wh2QK5fGPmewz3lcq9QcYFgQjcZhMaEJf/vV49+i8wpK//WNIyfO3AspiwuROFA0jh9HXlcFpM+JJjbxk32CQ3wn4dGvv7QrY7LmHX724C+7hsdDqcVYgtwqCOazZKKJTfxkn+AInvCydcbFrMXpORKOiEoikcFbBYvA4LgQImpiEz/ZR9wriA+sKNXhr9fMqVmZx7sOsCVByUiQkSnAfwE48TIQfzi8wCMuZLLnP9QkFF1DMzKVSkowey8In04GYC4YydgdAlNY4ALipyn8HcQh+vKK9sRvVU1akqHv+hhcuNAXi6ctp174UVc70cTu7RvBmZezuEc6TGc0J+9PzcdWqd0X9x384Ul7ftF1jO3u4Tc7h+ZmJk51njx6YHEpuN2Rb04uc/4jwACnFx3FfyjlHQAAAABJRU5ErkJggg==") !important;\ 136 | -moz-image-region: rect(0, 15px, 15px, 0) !important;\ 137 | margin-bottom: 1px !important;\ 138 | }\ 139 | #bookmarks-menu-button:not([starred]):hover {\ 140 | -moz-image-region: rect(15px, 15px, 30px, 0) !important;\ 141 | }\ 142 | #bookmarks-menu-button[starred] {\ 143 | -moz-image-region: rect(30px, 15px, 45px, 0) !important;\ 144 | }\ 145 | #bookmarks-menu-button >toolbarbutton,#bookmarks-menu-button >toolbarbutton .toolbarbutton-icon {\ 146 | -moz-appearance: none!important;\ 147 | border: none!important;\ 148 | box-shadow: none!important;\ 149 | background: none!important;\ 150 | margin: 0!important;\ 151 | }\ 152 | #bookmarks-menu-button > dropmarker > image {\ 153 | list-style-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABASURBVDhPY6AKCI7P+g/CUC6cTwhDlVPBgIEH6E5CdiY+DFU+GgYggC6ArAgfhiofDADdScjOxIehygc0DBgYAC8oyiFzn8OSAAAAAElFTkSuQmCC") !important;\ 154 | -moz-image-region: rect(0px, 16px, 16px, 0px) !important;\ 155 | }\ 156 | '.replace(/\n|\t/g, '')); -------------------------------------------------------------------------------- /TabPlus.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name TabPlus 3 | // @description 标签管理 4 | // @modby feiruo 5 | // @charset UTF-8 6 | // @include chrome://browser/content/browser.xul 7 | // @include chrome://browser/content/bookmarks/bookmarksPanel.xul 8 | // @include chrome://browser/content/history/history-panel.xul 9 | // @include chrome://browser/content/places/places.xul 10 | // @include chrome://mozapps/content/downloads/unknownContentType.xul 11 | // @include chrome://mozapps/content/downloads/downloads.xul 12 | // @id [5C5BB610] 13 | // @startup window.TabPlus_mod.init(); 14 | // @shutdown window.TabPlus_mod.onDestroy(true); 15 | // @homepageURL https://github.com/feiruo/userchromejs/ 16 | // @version 0.2 17 | // @note 新しいタブで開く(空白タブを利用) 18 | // @note 新标签打开(智能利用空白标签) 19 | // @note 必要なものだけ使って不要であれば削除するなりコメントアウトして下さい 20 | // @note 不需要的功能请自行注释掉 21 | // ==/UserScript== 22 | (function() { 23 | if (window.TabPlus_mod) { 24 | window.TabPlus_mod.onDestroy(); 25 | delete window.TabPlus_mod; 26 | } 27 | 28 | var TabPlus_mod = { 29 | gURLBar: gURLBar.handleCommand.toString(), 30 | openLinkIn: openLinkIn.toString(), 31 | whereToOpenLink: whereToOpenLink.toString(), 32 | cKBOnMCa: BookmarksEventHandler.onClick.toString(), 33 | cKBOnMCb: checkForMiddleClick.toString(), 34 | cdbt: gBrowser.mTabProgressListener.toString(), 35 | tab_hover: null, 36 | }; 37 | 38 | TabPlus_mod.init = function() { 39 | this.urlbarNewTab(true); // 地址栏新标签打开 40 | this.historyNewTab(true); //新标签打开书签,历史和搜索栏 41 | this.ldblclickC(true); //左键双击标签关闭 42 | this.mouseScroll(true); //滚轮切换标签 43 | this.rclickC(true); //标签上点击鼠标右键关闭标签 44 | //this.mMousedownR(true); //标签栏空白部分中间恢复关闭的标签 45 | //this.mMousedownP(true); //中键锁定标签 46 | //this.ldblclickR(true); //双击标签刷新 47 | //this.ldblclickRU(true); //未加载标签上双击刷新 48 | //this.nearTab(true); //紧邻当前标签新建标签页 49 | //this.cOLTab(true); //关闭标签聚焦左侧标签 50 | //------------------------------------------------ 51 | this.whereToOpen(true); // 中クリックでフォーカスを反転 52 | this.KeepBookmarksOnMiddleClick(true); // 鼠标中键点击时bookmark菜单不关闭 53 | this.closeDownloadBankTab(true); // 自动关闭下载产生的空白标签 54 | this.tabfocus(true); // 鼠标悬停激活标签 55 | }; 56 | 57 | TabPlus_mod.onDestroy = function(isOk) { 58 | this.urlbarNewTab(false); 59 | this.historyNewTab(false); 60 | this.whereToOpen(false); 61 | this.ldblclickC(false); 62 | this.mouseScroll(false); 63 | this.rclickC(false); 64 | this.mMousedownR(false); 65 | this.mMousedownP(false); 66 | this.ldblclickR(false); 67 | this.ldblclickRU(false); 68 | this.nearTab(false); 69 | this.cOLTab(false); 70 | this.KeepBookmarksOnMiddleClick(false); 71 | this.closeDownloadBankTab(false); 72 | this.tabfocus(false); 73 | }; 74 | 75 | //-------------------------------------------------------------------------- 76 | 77 | TabPlus_mod.urlbarNewTab = function(isOk) { 78 | if (isOk) { 79 | try { 80 | location == "chrome://browser/content/browser.xul" && eval("gURLBar.handleCommand=" + this.gURLBar.replace(/^\s*(load.+);/gm, "if(/^javascript:/.test(url)||isTabEmpty(gBrowser.selectedTab)){loadCurrent();}else{this.handleRevert();gBrowser.loadOneTab(url, {postData: postData, inBackground: false, allowThirdPartyFixup: true});}")); 81 | } catch (e) {} 82 | } else { 83 | try { 84 | location == "chrome://browser/content/browser.xul" && eval("gURLBar.handleCommand=" + this.gURLBar); 85 | } catch (e) {} 86 | } 87 | }; 88 | 89 | TabPlus_mod.historyNewTab = function(isOk) { 90 | if (isOk) { 91 | try { 92 | eval('openLinkIn=' + this.openLinkIn.replace('w.gBrowser.selectedTab.pinned', '(!w.isTabEmpty(w.gBrowser.selectedTab) || $&)').replace(/&&\s+w\.gBrowser\.currentURI\.host != uriObj\.host/, '')); 93 | } catch (e) {} 94 | } else { 95 | try { 96 | eval('openLinkIn=' + this.openLinkIn); 97 | } catch (e) {} 98 | } 99 | }; 100 | 101 | TabPlus_mod.whereToOpen = function(isOk) { 102 | if (isOk) { 103 | try { 104 | eval('whereToOpenLink=' + this.whereToOpenLink.replace(' || middle && middleUsesTabs', '').replace('if (alt', 'if (middle && middleUsesTabs) return shift ? "tab" : "tabshifted"; $&')); 105 | } catch (e) {} 106 | } else { 107 | try { 108 | eval('whereToOpenLink=' + this.whereToOpenLink); 109 | } catch (e) {} 110 | } 111 | }; 112 | 113 | TabPlus_mod.ldblclickC = function(isOk) { 114 | if (isOk) { 115 | try { 116 | gBrowser.mTabContainer.addEventListener('dblclick', TabPlus_mod.ldblclickC.acction, true); 117 | } catch (e) {} 118 | } else { 119 | try { 120 | gBrowser.mTabContainer.removeEventListener('dblclick', TabPlus_mod.ldblclickC.acction, true); 121 | } catch (e) {} 122 | } 123 | }; 124 | TabPlus_mod.ldblclickC.acction = function(event) { 125 | if (event.target.localName == 'tab' && event.button == 0) 126 | gBrowser.removeTab(event.target); 127 | }; 128 | 129 | TabPlus_mod.mouseScroll = function(isOk) { 130 | if (isOk) { 131 | try { 132 | gBrowser.mTabContainer.addEventListener('DOMMouseScroll', TabPlus_mod.mouseScroll.acction, true); 133 | } catch (e) {} 134 | } else { 135 | try { 136 | gBrowser.mTabContainer.removeEventListener('DOMMouseScroll', TabPlus_mod.mouseScroll.acction, true); 137 | } catch (e) {} 138 | } 139 | }; 140 | TabPlus_mod.mouseScroll.acction = function(event) { 141 | this.advanceSelectedTab(event.detail > 0 ? +1 : -1, true); 142 | }; 143 | 144 | TabPlus_mod.rclickC = function(isOk) { 145 | if (isOk) { 146 | try { 147 | gBrowser.mTabContainer.addEventListener('click', TabPlus_mod.rclickC.acction, true); 148 | } catch (e) {} 149 | } else { 150 | try { 151 | gBrowser.mTabContainer.removeEventListener('click', TabPlus_mod.rclickC.acction, true); 152 | } catch (e) {} 153 | } 154 | }; 155 | TabPlus_mod.rclickC.acction = function(event) { 156 | if (event.target.localName == "tab" && event.button == 2 && !event.ctrlKey) { 157 | gBrowser.removeTab(event.target); 158 | event.stopPropagation(); 159 | event.preventDefault(); 160 | } 161 | }; 162 | 163 | //-------------------------------------------------------------------------- 164 | 165 | TabPlus_mod.mMousedownR = function(isOk) { 166 | if (isOk) { 167 | try { 168 | gBrowser.mTabContainer.addEventListener('mousedown', TabPlus_mod.mMousedownR.acction, false); 169 | } catch (e) {} 170 | } else { 171 | try { 172 | gBrowser.mTabContainer.removeEventListener('mousedown', TabPlus_mod.mMousedownR.acction, false); 173 | } catch (e) {} 174 | } 175 | }; 176 | TabPlus_mod.mMousedownR.acction = function(event) { 177 | if (event.target.localName != 'tab' && event.button == 1) { 178 | document.getElementById('History:UndoCloseTab').doCommand(); 179 | } 180 | }; 181 | 182 | TabPlus_mod.mMousedownP = function(isOk) { 183 | if (isOk) { 184 | try { 185 | gBrowser.mTabContainer.addEventListener('click', TabPlus_mod.mMousedownP.acction, true); 186 | } catch (e) {} 187 | } else { 188 | try { 189 | gBrowser.mTabContainer.removeEventListener('click', TabPlus_mod.mMousedownP.acction, true); 190 | } catch (e) {} 191 | } 192 | }; 193 | TabPlus_mod.mMousedownP.acction = function(event) { 194 | if (event.target.localName == "tab" && event.button == 1 && !event.ctrlKey) { 195 | var subTab = event.originalTarget; 196 | while (subTab.localName != "tab") { 197 | subTab = subTab.parentNode; 198 | } 199 | if (subTab.pinned) { 200 | gBrowser.unpinTab(subTab); 201 | } else { 202 | gBrowser.pinTab(subTab); 203 | } 204 | event.stopPropagation(); 205 | event.preventDefault(); 206 | } 207 | }; 208 | 209 | TabPlus_mod.ldblclickR = function(isOk) { 210 | if (isOk) { 211 | try { 212 | gBrowser.mTabContainer.addEventListener('dblclick', TabPlus_mod.ldblclickR.acction, true); 213 | } catch (e) {} 214 | } else { 215 | try { 216 | gBrowser.mTabContainer.removeEventListener('dblclick', TabPlus_mod.ldblclickR.acction, true); 217 | } catch (e) {} 218 | } 219 | }; 220 | TabPlus_mod.ldblclickR.acction = function(event) { 221 | if (event.target.localName == 'tab' && event.button == 0) { 222 | getBrowser().getBrowserForTab(event.target).reload(); 223 | } 224 | }; 225 | 226 | TabPlus_mod.ldblclickRU = function(isOk) { 227 | if (isOk) { 228 | try { 229 | gBrowser.mTabContainer.addEventListener('dblclick', acction, false); 230 | } catch (e) {} 231 | } else { 232 | try { 233 | gBrowser.mTabContainer.removeEventListener('dblclick', acction, false); 234 | } catch (e) {} 235 | } 236 | }; 237 | TabPlus_mod.ldblclickRU.acction = function(event) { 238 | if (event.target.localName == 'tab' && event.button == 0) { 239 | if (event.target.hasAttribute("busy")) { 240 | document.getElementById('cmd_close').doCommand(); 241 | } else { 242 | getBrowser().getBrowserForTab(event.target).reload(); 243 | } 244 | } 245 | }; 246 | 247 | TabPlus_mod.nearTab = function(isOk) { 248 | if (isOk) { 249 | try { 250 | gBrowser.tabContainer.addEventListener("TabOpen", TabPlus_mod.nearTab.acction, false); 251 | } catch (e) {} 252 | } else { 253 | try { 254 | gBrowser.tabContainer.removeEventListener("TabOpen", TabPlus_mod.nearTab.acction, false); 255 | } catch (e) {} 256 | } 257 | }; 258 | TabPlus_mod.nearTab.acction = function(event) { 259 | try { 260 | if (!gBrowser) return; 261 | } catch (e) { 262 | return; 263 | } 264 | var tab = event.target; 265 | gBrowser.moveTabTo(tab, gBrowser.mCurrentTab._tPos + 1); 266 | }; 267 | 268 | TabPlus_mod.cOLTab = function(isOk) { 269 | if (isOk) { 270 | try { 271 | gBrowser.tabContainer.addEventListener("TabClose", TabPlus_mod.cOLTab.acction, false); 272 | } catch (e) {} 273 | } else { 274 | try { 275 | gBrowser.tabContainer.removeEventListener("TabClose", TabPlus_mod.cOLTab.acction, false); 276 | } catch (e) {} 277 | } 278 | }; 279 | TabPlus_mod.cOLTab.acction = function(event) { 280 | try { 281 | if (!gBrowser) return; 282 | } catch (e) { 283 | return; 284 | } 285 | var tab = event.target; 286 | if (tab.linkedBrowser.contentDocument.URL == 'about:blank') return; 287 | if (tab._tPos <= gBrowser.mTabContainer.selectedIndex) { 288 | if (tab.previousSibling) { 289 | gBrowser.mTabContainer.selectedIndex--; 290 | } 291 | } 292 | }; 293 | 294 | //-------------------------------------------------------------------------- 295 | 296 | TabPlus_mod.KeepBookmarksOnMiddleClick = function(isOk) { 297 | if (isOk) { 298 | try { 299 | eval('BookmarksEventHandler.onClick =' + this.cKBOnMCa.replace('node.hidePopup()', '')); 300 | eval('checkForMiddleClick =' + this.cKBOnMCb.replace('closeMenus(event.target);', '')); 301 | } catch (e) {} 302 | } else { 303 | try { 304 | eval('BookmarksEventHandler.onClick =' + this.cKBOnMCa); 305 | eval('checkForMiddleClick =' + this.cKBOnMCb); 306 | } catch (e) {} 307 | } 308 | }; 309 | 310 | TabPlus_mod.closeDownloadBankTab = function(isOk) { 311 | if (isOk) { 312 | try { 313 | eval("gBrowser.mTabProgressListener = " + this.cdbt.replace(/(?=var location)/, '\ 314 | if (aWebProgress.DOMWindow.document.documentURI == "about:blank"\ 315 | && aRequest.QueryInterface(nsIChannel).URI.spec != "about:blank") {\ 316 | aWebProgress.DOMWindow.setTimeout(function() {\ 317 | !aWebProgress.isLoadingDocument && aWebProgress.DOMWindow.close();\ 318 | }, 100);\ 319 | }\ 320 | ')); 321 | } catch (e) {} 322 | } else { 323 | try { 324 | location == eval("gBrowser.mTabProgressListener=" + this.cdbt); 325 | } catch (e) {} 326 | } 327 | }; 328 | 329 | TabPlus_mod.tabfocus = function(isOk) { 330 | if (isOk) { 331 | try { 332 | gBrowser.tabContainer.addEventListener("mouseout", TabPlus_mod.tabfocus.onMouseOut, false); 333 | gBrowser.tabContainer.addEventListener("mouseover", TabPlus_mod.tabfocus.onMouseOver, false); 334 | } catch (e) {} 335 | } else { 336 | try { 337 | gBrowser.tabContainer.removeEventListener("mouseover", TabPlus_mod.tabfocus.onMouseOver, false); 338 | gBrowser.tabContainer.removeEventListener("mouseout", TabPlus_mod.tabfocus.onMouseOut, false); 339 | } catch (e) {} 340 | } 341 | }; 342 | TabPlus_mod.tabfocus.onMouseOver = function(event) { 343 | this.tab_hover = setTimeout(function() { 344 | gBrowser.selectedTab = event.target; 345 | }, 250); 346 | }; 347 | TabPlus_mod.tabfocus.onMouseOut = function() { 348 | clearTimeout(this.tab_hover); 349 | }; 350 | 351 | TabPlus_mod.init(); 352 | window.TabPlus_mod = TabPlus_mod; 353 | })(); -------------------------------------------------------------------------------- /UserAgentChange/README.md: -------------------------------------------------------------------------------- 1 | UserAgentChange 2 | ============ 3 | 4 | - 使用外部配置文件。 5 | - 工具菜单中增加一个重载菜单,左键重载,右键编辑配置文件。 6 | - 注意:重载过程中可能导致菜单无反应。。 7 | - 配置文件位置: 8 | 9 | Chrome\lib\_userAgentChange.js -------------------------------------------------------------------------------- /anoBtn/README.md: -------------------------------------------------------------------------------- 1 | anoBtn.uc.js 2 | ============ 3 | - 感谢 ywzhaiqi 4 | - AnotherButton按钮菜单。 5 | - tools-menu 等内置菜单的重载、按钮重载,请参考配置文件。 6 | - 使用外部配置文件,请参考配置文件。 7 | - 工具菜单中增加一个重载菜单,左键重载,右键编辑配置文件。 8 | - 支持多级菜单(如无特殊需求,不推荐,影响体验)。 9 | - 支持文件夹枚举文件及执行文件参数。 10 | - 开放的菜单生成函数 `window.AnoBtn_BuildPopup`。 11 | - 配置与addmenu一样,但仅支持本脚本菜单位置,具体请参照[addmenuPlus](https://github.com/ywzhaiqi/userChromeJS/tree/master/addmenuPlus "addmenuPlus") 12 | - 配置文件位置:`Chrome\lib\_anoBtn.js` 13 | - 目录枚举添加请注意: 14 | 1. 斜杠"/"或"\"开头为相对配置文件夹,注意:Linux路径区分大小写!!!! 15 | 1. 根据文件名全名字符(包括扩展名)排除或筛选; 16 | 1. 关系为:先排除再枚举。 17 | 1. 注意:配对模式为 test循环模式正则!!!注意正则全局"g"的使用!!test()继承正则表达式的lastIndex属性,表达式在匹配全局标志g的时候须注意。 18 | 1. 留空表示不进行该行为。 19 | 1. 在文件夹上左键点击为打开文件夹 20 | 21 | - 示例: 22 | 23 | { 24 | label: "菜单显示名称", 25 | image: "图标", 26 | //枚举文件夹内的所有文件。注意:Linux路径区分大小写!!!! 27 | MapFolder: '/chrome/tools', 28 | //排除的文件,需要注意:此处不使用"g"全局模式,可以匹配所有文件, 29 | Exclude: /\.(dat|reg|sample|config|db|log|dll|json|zip|rar|ini)$|7za\.exe|wget\.exe/i, 30 | //枚举的文件 31 | Filter: /\.(exe|lnk|bat|xls|xlsx|txt|doc|docx|jpg|wps)$/i, 32 | //是否枚举子目录内的文件,值代表子目录深度,多少级的子目录,0为根目录(即不枚举子目录) 33 | Directories: 2, 34 | //排除目录,仅当Directories>1时生效。 35 | ExcludeDirs: /tmp|temp|ConFile|msdll/i, 36 | //枚举目录,仅当Directories>1时生效。留空表示不筛选 37 | FilterDirs: "", 38 | //可执行文件参数 39 | ExeText: { 40 | //需要带参数的执行文件 41 | Program: /^(firefox|nightly)\.(exe)$/i, 42 | //参数:%DIR%(上一级目录名),%EXE%(不带后缀程序名) 43 | text: "-no-remote -profile ..\\Profile_%DIR%", 44 | }, 45 | }, 46 | 47 | - 菜单生成函数用法: 48 | 49 | var Menus=[{ 50 | label: "菜单显示名称", 51 | image: "图标", 52 | //枚举文件夹内的所有文件。注意:Linux路径区分大小写!!!! 53 | MapFolder: '/chrome/tools', 54 | //排除的文件,需要注意:此处不使用"g"全局模式,可以匹配所有文件, 55 | Exclude: /\.(dat|reg|sample|config|db|log|dll|json|zip|rar|ini)$|7za\.exe|wget\.exe/i, 56 | //枚举的文件 57 | Filter: /\.(exe|lnk|bat|xls|xlsx|txt|doc|docx|jpg|wps)$/i, 58 | //是否枚举子目录内的文件,值代表子目录深度,多少级的子目录,0为根目录(即不枚举子目录) 59 | Directories: 2, 60 | //排除目录,仅当Directories>1时生效。 61 | ExcludeDirs: /tmp|temp|ConFile|msdll/i, 62 | //枚举目录,仅当Directories>1时生效。留空表示不筛选 63 | FilterDirs: "", 64 | //可执行文件参数 65 | ExeText: { 66 | //需要带参数的执行文件 67 | Program: /^(firefox|nightly)\.(exe)$/i, 68 | //参数:%DIR%(上一级目录名),%EXE%(不带后缀程序名) 69 | text: "-no-remote -profile ..\\Profile_%DIR%", 70 | }, 71 | }] 72 | var Popup=document.createElement("menupopup"); 73 | Popup.setAttribute("id","PopupID"); 74 | PopupBuild = new AnoBtn_BuildPopup(Popup); 75 | //Or this: PopupBuild = new AnoBtn_BuildPopup("PopupID"); 76 | PopupBuild.Build(Menus); 77 | //so your menu popup created,suppout all events that anoBtn suppouted 78 | 79 | 80 | ![图片](anoBtn.png) -------------------------------------------------------------------------------- /anoBtn/_anoBtn.js: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | *此处为按钮设置 3 | *************************************************************************************/ 4 | var anobtnset = { 5 | //※必须设置 按钮位置,0为可移动,1为地址栏图标,2为以前的自定义定位方式 6 | Icon_Pos: 0, 7 | 8 | //自定义定位方式: 按钮与哪个id相邻,alltabs-button,back-button等 9 | intags: "tabbrowser-tabs", 10 | 11 | //自定义定位方式: 按钮与目标id关系,之前(before)或者之后(after) 12 | orientation: "before", 13 | 14 | //按钮图标 15 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABmElEQVRIic3Vz2ddURAH8I+IqqonKqqioiKLyiKqIqKqqqoi3iKL6qKriKguKp56qioekUVVFhEVVfef7eLMbY/z7i8N1S/jcmfm+z0zd+Zc/gMsYQs7hW1hdB3iFTzDBhYb/Dewiae4O5R0NZ47eNgTuxgxLzCLZyfWcRqBS/FuIcT2NFcxwj6+osIEtyJvDvsRNMVB2BRXmWATFrCNi8g/llo3h8MIKO207UQFlnEeOWcaKj5pEajwOSrq6/NmlrOeOzY6yGu7xKMege2sipe5o609tX3R/R1qvMpyDmVt6mpPhaMB5KXAhTRRnQI/cB/3BpAv43WR+7uCc80CPyNxCHb9GdUK33LntEWgCvEnWMNYmqgj3C4ExkXeJHfudQg0VXUgta7GzRDN48a5wEoP6VWU/wEPipOPoj2XRc5qEedjh8BMsTiBO+EryU8aYq1F+V2VfJLa+Rxv8b0lrnUh3/QIDLH3beSkuT2+BvlMtlxdIn1XR5NNzI9uJx5LV3Uf8Zn0U/pr1Av2Tpq0ibQHu+ZH9t/jF5XwjtYY3gV/AAAAAElFTkSuQmCC", 16 | 17 | //菜单弹出方向,不设置就默认,参考 https://developer.mozilla.org/en-US/docs/XUL/PopupGuide/Positioning 18 | position: "", 19 | }; 20 | 21 | /********************************************************************************** 22 | *child:[ ]内为当前菜单的下一级菜单配置,支持多级 23 | *text 为运行参数,如果无需参数,直接删除text属性 24 | *这里是菜单配置: 25 | *配置与addmenu一样,但仅支持本脚本菜单位置,具体请参照;https://github.com/ywzhaiqi/userChromeJS/tree/master/addmenuPlus 26 | *------------------------------- 27 | *{}, 为分隔条 28 | *------------------------------- 29 | *目录枚举添加请注意: 30 | *1、斜杠"/"或"\"开头为相对配置文件夹,注意:Linux路径区分大小写!!!! 31 | *2、根据文件名全名字符(包括扩展名)排除或筛选; 32 | *3、关系为:先排除再枚举。 33 | *4、注意:配对模式为 test循环模式正则!!!注意正则全局"g"的使用!!test()继承正则表达式的lastIndex属性,表达式在匹配全局标志g的时候须注意。 34 | *5、留空表示不进行该行为。 35 | *6、在文件夹上左键点击为打开文件夹 36 | *************************************************************************************/ 37 | var anomenu = [ //下面添加菜单 38 | { 39 | label: '外部程序', 40 | //枚举文件夹内的所有文件,当做可执行文件加入菜单,斜杠"/"或"\"开头为相对配置文件夹,注意:Linux路径区分大小写!!!! 41 | MapFolder: '/chrome/tools', 42 | //枚举的文件,需要注意:此处不使用"g"全局模式,可以匹配所有文件, 43 | Filter: /(firefox|nightly)\.(exe)$/i, 44 | //排除文件 45 | Exclude: /\.(dat|reg|sample|config|db|log|dll|json|zip|rar|ini)$|7za\.exe|UpdataS\.bat|wget\.exe/i, 46 | //是否枚举子目录内的文件,值代表子目录深度,多少级的子目录,0为根目录(即不枚举子目录) 47 | Directories: 2, 48 | //枚举目录,仅当Dirs>0时生效。 49 | FilterDirs: /^(?!Profile|firefox$)firefox.*/i, 50 | //排除目录,仅当Dirs>0时生效。留空表示不进行该行为。 51 | ExcludeDirs: /^firefox$/i, 52 | //可执行文件参数 53 | ExeText: { 54 | //需要带参数的执行文件 55 | Program: /^(firefox|nightly)\.(exe)$/i, 56 | //参数:%DIR%(上一级目录名),%EXE%(不带后缀程序名) 57 | text: "-no-remote -profile ..\\Profile_%DIR%", 58 | }, 59 | //菜单图标 60 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAbklEQVQ4je3TXwqAIAzAYe+VsP32pvc/QuQx7KmIAm39eYkGwz3IB24zhCdDRBIwmVn1JDCJSFqhK8gWW6HeZVWN+3Opzayehnr5HqSq8eyAmk/zTvuHPgV59ggYDtDNT1u2UAbKBWgEsrclzZgBLQgC98zNgUMAAAAASUVORK5CYII=", 61 | child: [ //没有目录级数限制,文件夹枚举和原有菜单移动在子菜单也适用 62 | { 63 | label: "IE打开", 64 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZXTv2sUQRwF8E88UYlg5WEhiqWIhREbIWVqOwkRUh6oqU/E/0KREBBUsJBwVmn9gXokXFJJCiN4pWKnp4lYnJ4W+x0Yhj1yLjwWZua977z3dpnsaaKF1xjgFzZweRzhEM5hAbfRDdIL3Ij1+1itI5/HQ3zBH/wNjPAO13E0hrRL8hw+ZKQ6DPEobF0qJ7/fh5zjLk4l8kE8KA58w+PwfAtv8Tvb/475JHAWn7LNPdzEMRzGEZxBpxiylgSuFuo/0cN6hi52Isx0bjcJtP/DewlNvCkW+3HdZwU6NdAKz3nnmzgZtzsQmMLxSD7hBLzCS2xnAiM8VVU7HWFeiSz6+BjvO/AVS5H6sLDyWVXfFn7U2JwRiV+LSU8mDG6AxdRAD/fQiECXo55x5H6QG0lgNhJu4yJOq/6255nQSPWhreBCBAr+AcklnGDMJaPHAAAAAElFTkSuQmCC", 65 | tooltiptext: "左键:IE打开当前页\r\n中键:打开 Internet Explorer\r\n右键:IE隐私打开当前页", 66 | //显示条件 67 | condition: "nolink", 68 | //自添加属性 69 | onclick: function(e) { 70 | var Path = "C:\\Program Files\\Internet Explorer\\iexplore.exe"; 71 | switch (e.button) { 72 | case 0: 73 | addMenu.exec(Path, addMenu.convertText("%u")); 74 | break; 75 | case 1: 76 | addMenu.exec(Path, ""); 77 | break; 78 | case 2: 79 | e.preventDefault(); 80 | addMenu.exec(Path, " -private " + addMenu.convertText("%u")); 81 | break; 82 | } 83 | } 84 | }, { 85 | label: "测试配置1", 86 | text: "-no-remote -profile ProfileTest", 87 | exec: Services.dirsvc.get("ProfD", Ci.nsILocalFile).path + "\\..\\firefox.exe", 88 | }, { 89 | label: "测试配置2", 90 | text: "-no-remote -profile ProfileTest", 91 | exec: "\\..\\firefox.exe", 92 | }, { 93 | label: "配置文件夹", 94 | exec: Services.dirsvc.get("ProfD", Ci.nsILocalFile).path, 95 | }, {}, // 分隔条 96 | { 97 | label: " 启动 Internet Explorer", 98 | exec: "C:\\Program Files\\Internet Explorer\\iexplore.exe" 99 | }, { 100 | label: " Internet Explorer 打开此页", 101 | text: "%u", 102 | exec: "C:\\Program Files\\Internet Explorer\\iexplore.exe" 103 | }, 104 | ] 105 | }, { 106 | label: "我的电脑", 107 | text: "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 108 | exec: "C:\\Windows\\explorer.exe", 109 | }, { 110 | label: "常用功能", 111 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAgUlEQVQ4jdVTwQ2AIAx0A0ZwFD/3Ilc6EqMxkiPow9SACphoTGxyj9K7a9rQYTgEGaKILlcgQzzyiwDgamLDSdQTdA1fMJBpgz1aXkPJO43SXFKLlxdEdBbROavt+TcGj0d4bPDzHdQOBoDLD817PxYEUtPd70tqqnTom5CaADjTrW77Ai0wH7nFAAAAAElFTkSuQmCC", 112 | child: [{ 113 | label: "打开文件", 114 | oncommand: "BrowserOpenFileWindow();", 115 | image: "chrome://browser/skin/places/query.png" 116 | }, { 117 | label: "隐私浏览", 118 | oncommand: "OpenBrowserWindow({private: true});", 119 | image: "chrome://browser/skin/Privacy-16.png" 120 | }, {}, { 121 | label: "遥测数据", 122 | oncommand: "getBrowser().selectedTab = getBrowser().addTab ('about:telemetry')", 123 | image: "chrome://browser/skin/Geolocation-16.png" 124 | }, { 125 | label: "关于about", 126 | oncommand: "gBrowser.selectedTab = gBrowser.addTab('about:about');", 127 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAcElEQVQ4jdWTQQ6AIAwE+drs33gxaMIJL2oMIKnVi5v0QNIObboN4SIgAgmIwSNglVSB5AJ4f41AklQNkbvxJBVj8QnpOpCUn0Bco5oAs6QfAtqC9j107N1KR4ChY/eVLkZAb6qZvvBBeXVoh2Pbtjdof7mCLHWekwAAAABJRU5ErkJggg==" 128 | }, { 129 | label: "权限管理", 130 | oncommand: "getBrowser().selectedTab = getBrowser().addTab ('about:permissions')", 131 | image: "chrome://mozapps/skin/passwordmgr/key.png" 132 | }, { 133 | label: "故障排除", 134 | oncommand: "getBrowser().selectedTab = getBrowser().addTab ('about:support')", 135 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAzklEQVQ4jc1SyQnDMBDcDhSBtXqmBD8MtrQflWAICGlfLsUluASX5BJSgktwXgH5iBKCIRnQZ9kZaUYD8HeopBeEcSTkmTQvpHkh5JkwjpX0IktudGhXxO1Bnhsd2kOyUdyliwZjbwvvbOGdwdinwkZxlyXXGMrtBTWG8lCkxlCmzzQYewAAg7HPzUjzYgvvwOp43w0BYOsfAMAW3q12dbwDIU/fChDytPf2qYU0q1chVtILutyu2RBP+cZTivREJb2wKgzbKlsVhrdV/gkeMqXAlXes4XwAAAAASUVORK5CYII=" 136 | }, { 137 | label: "帮助支持", 138 | oncommand: "getBrowser().selectedTab = getBrowser().addTab ('http://support.mozilla.org/zh-CN/products/firefox')", 139 | image: "chrome://global/skin/icons/information-16.png" 140 | }, { 141 | label: "安全模式", 142 | oncommand: "safeModeRestart();", 143 | image: "chrome://mozapps/skin/extensions/alerticon-warning.png", 144 | }, ] 145 | }, { 146 | label: '谷歌站內搜索', 147 | oncommand: function() { 148 | gBrowser.loadURI("javascript:q%20=%20%22%22%20+%20(window.getSelection%20?%20window.getSelection()%20:%20document.getSelection%20?%20document.getSelection()%20:%20document.selection.createRange().text);%20if%20(!q)%20q%20=%20prompt(%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%85%B3%E9%94%AE%E8%AF%8D:%22,%20%22%22);%20if%20(q!=null)%20{var%20qlocation=%22%20%22;qlocation=('http://www.google.com/search?num=30&hl=zh-CN&newwindow=1&q='+q+'&sitesearch='+location.host+'');window.open(qlocation);}%20void%200") 149 | } 150 | }, 151 | 152 | //移动 工具 菜单 153 | { 154 | id: "tools-menu", 155 | label: "工具菜单", 156 | accesskey: "", 157 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAcElEQVQ4jdWTQQ6AIAwE+drs33gxaMIJL2oMIKnVi5v0QNIObboN4SIgAgmIwSNglVSB5AJ4f41AklQNkbvxJBVj8QnpOpCUn0Bco5oAs6QfAtqC9j107N1KR4ChY/eVLkZAb6qZvvBBeXVoh2Pbtjdof7mCLHWekwAAAABJRU5ErkJggg==", 158 | }, { 159 | id: "charsetMenu", 160 | label: "字符编码", 161 | accesskey: "", 162 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAhUlEQVQ4jdWSsQ2AMAwEr6TMQJQMlAGyQ5SakgEyCgNQMgYFFHERmRAiaOA7v30vSzb8QSOwvgmYgdg6bIEdCFJ3wAa4rOdbYYBevEHNnEJKcO6bgue1oWGACVgq2/rqWgJPlYCgjTzEiGfv4KuQQeq+BS6FONIJu1ZYK5Ke6LFW0ht/XAcCHjHf2jnyJAAAAABJRU5ErkJggg==", 163 | }, { 164 | label: "书签管理", 165 | oncommand: "PlacesCommandHook.showPlacesOrganizer('AllBookmarks');", 166 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABS0lEQVQ4jY1SzUoCURi9IL5CVJuEKAoShNk5ejnnPEQEQgQiGESrgt4gaC0qhSHVoh96ETe+SJt2peBt802MMlNz4YO55/vOz3cZ53KOpIGkYDXIm8s8ANYlBZILkgtJoV6vrxUWIDky5zeS7/Z9V9T9wNznjUZjF8Aeybmk4L3fzyO1SA5JTrP2Jnmb4CSnJIcAWqtxk/qSNGk2mxuJQBzHm5Imkr7TsyRHLiEB6AKoRVFUzlsviqIygBqArhmF3wQkn5xzpQLPVCL5kk6wJenTgP5/bJJ9S/0Rx/Gmc8457301tdd5HlnSRTLnva8uNQGcmUCvgPtpVvPGBC7/SHAlKQC4zmq+msChJaqQ7JPsAagYdmQzz1kJHqx5THJMcpZ6lxnJewAndh9nJeis/FBB0qPVEg6gnbdjx5J0JG0nuPd+B0Cb5HiV/AOStMNZrdTkSAAAAABJRU5ErkJggg==" 167 | }, { 168 | label: "打开选项", 169 | oncommand: "openPreferences();", 170 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABR0lEQVQ4jY2SP0sDQRDFr1UEUTRW+Q7iieGO7N57z8I/WJvSxlJrQS2sbSz9BulESGUEQRtbGwULrdKJaCEE03g2k3DGu1wWlllm5/dm9rFBMGIB2JPUIvkpqQVgd1T9YNVqtQWSbUlpzj4vFSB5JSkl+QKgUa/XZwDskPyRlAJYLBs7lfTqnJs3wU1JPcvf92Mcx5V/ApIurUsjk/u2iW4sPli8yBN4N4G5TG7gAcnnOI4rdn7Le/+HpDSKotkcgZ5zbimKogkT6P6BkySJMp2SIp+SJNmwuusi+LQIDsNwmuSj1R2Wws65FQBTYRhOAtiS9GR1d0EQBAGA5SIYwFHeZyJ5672v9k1r2sVZEUzyi2SXZBvAwbDrHUmp975K8tlcP+7DANaL/BieYN97X5V0MjZsAtsF71wrhbMiJJskOxZXx2V/AYbjyhDulDKPAAAAAElFTkSuQmCC" 171 | }, { 172 | label: "附加组件", 173 | oncommand: "BrowserOpenAddonsMgr();", 174 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAfElEQVQ4jc2SSwqFQAwE+14KSWWn1/YqosfwrRzEEeNv8RqyCZki3RnpSwFDRCwRsQBD1q+0Dq2V9SVJZtYB034oK2Ays05PHm8hZT13b69m5e5tsXPkq/J5klcFyEJMAa83uKo/BNw5I9AUwMuPNAvogfkBYAT6u9Yr/QBtWNOEJkNI4gAAAABJRU5ErkJggg==" 175 | }, { 176 | label: "参数设置", 177 | oncommand: "toOpenWindowByType('pref:pref', 'About:config');", 178 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABC0lEQVQ4jZWTTUrEUBCEc6DZyIC7pPurQVAh4F2EgAreRQKjSzE4Ki4H/J0jCAoeJC58Ay9vEuP0sruruqvozrKecPcJsJTUSmqBpbtP+no7AZwCdzE4JpG0AE6GwLcpaF3rIXtIwVUofJnZgaRLYBbVZ8AcOAQ+Qu95Fk1oJLVmVo7JNLO9QPC4YRhwNUYgqe4YmximaO0p8A6s8jzfjTYgNjZLDYsmvUaNq576L26IAHiONnsbJBiSUBTFjqQn4AWYrvPu7h0JiYnzMROBi43rBK4lte5+NEbg7vuB4D5OHofkt5mVkmozI1m7NrMS+AzDzlJTbv57ypIWQ/oqSc0fz9QA1ZjMrd75B1lk19vKzwu4AAAAAElFTkSuQmCC" 179 | }, { 180 | label: "错误控制台", 181 | oncommand: "toJavaScriptConsole();", 182 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2ElEQVQ4jY2SURGDMBBEIwEJSHm7CpCAhEqoAyRUAhIqIRKQgAT60WMmTRPam8kMOXIve3tJqQhgsH0HqPJEfkhXISnbPjqAQ1LuFgOj7SMOPs/vev+Xgt66VFCraK2mB5I2SRswA2Mtv2wDGIDJ9ippL299SNolbbYXYOIzJttL/D9sr7XR5wi78os2xl7/NA7PjRw9wNfhlFJqAKa68Fb09hNQGPoG2V7DuK8RdhTwMYVqpPkK8Osp/+vB3C0OP3ILICkDtyYkPJgDNoQvJWA9n3Fctpy1LyNPBAjW0Ns9AAAAAElFTkSuQmCC" 183 | }, { 184 | label: "关于浏览器", 185 | oncommand: "openAboutDialog();", 186 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACK0lEQVQ4jc2RQUsbQRTHh7DZ7JiZ7CQZw+w6klmjm1yCmE1KaSLIghcPUgs5hPSQD+AHkCLFHnroqYcGeqilVE9NkSAhBw+yJ/FQSiiylPdpphdj1dj22gd/mOH9/z/evEHofytx727eOlv/CpuEkNMoioxkMlnDGH/d2Nh4PG32ej2Ry+VeIYQyD6bz+fxzzjk4jrOfzWavarXaO621cduzubnZI4ScIoTmZgCu637xPA+KxSJ4ngdKqTOM8dtUKuVPPVEUMdd1J9ls9sWd8MHBgek4Tuz7PpTLZfB9H5RSP9fX1z8NBoMcQgi1220ipXxWqVROOOc/giD4PUWz2XQdxwHP88DzPFhZWblaW1s70VrfeW+1Wt1bXFy8FELAwsLCzX7Q6uqqXygUQEoJUkoolUoXh4eHjxBCmUQisWsYRogQQkqpnhAChBCwtLS0dQPodrsyn8/DtMk5h3Q6PUmlUhMp5Xmn03mKEEKMsY/z8/PAOYdGo/HkBhDHsSmEuOScw1TFYvFie3v7zWg0qriuO2ea5h6lFDjnIIT4PhwO2Z1FBkGwb9s2MMaAMQaUUrBt+zyZTB4bhvHNsizIZDJg2za0Wq29mW8cj8dCKXVGKQVKKRBCAGMMlmUBxhgIIUApheXl5WEcx7kZwDXEr9frx+l0GjDGMwqC4HMURerB8LS01uzo6Chst9svwzB8H4bhh52dndf9fn9La83+Gr4HSmitrWsZf/L9AnXzp979k0QwAAAAAElFTkSuQmCC" 187 | }, { 188 | label: "重启浏览器", 189 | oncommand: "Services.appinfo.invalidateCachesOnRestart() || Application.restart();", 190 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgklEQVQ4jX1Su0pDQRC9hVjEVysBX8FCiKTZIsgumznnH2wikUQR9EsEwVrBwkrBXoPGSvATJIrxFcR8gkVAr81svIk3LizsnnmdOTNRNOSUSqUVknG4AA6H+fYdEVkDcEKyrYF7JL/0fSEii6mBJOdI1pNVScZq8wDeNMmniCz3BXvvZ0g+a1BbRLadc7P5fH40+BSLxUmSx5qkKyJLyep1NVxaayf+a5HkkRba6vWswa/GmCnFqgBaoQXFRgDsA/gmGfcYADhVYFsrVAY1EJFpADcJ/KBHCcA7ydh7P6P/B2V0q4kdyQ/F7kgeACgnE3RJxkGwMDIR2Q2CDU5G8fIwBvfqtJMQLAbwQnJV8d82ggZB1SBqyq0ow5r+j0OCda3wZIzJKFYm2dR2moGuMSZD8lH9N5I6XCVWdTxt/oVCYQzAufpd9xmdc7nEqrZEZNNam42iKLLWZknWwl6QbDvncn8qiMg8ycaQ/sNteO8X0nf0N1EVwBmAjjLq6H8jzf8HTUH5xYEpCK8AAAAASUVORK5CYII=" 191 | }, { 192 | id: "appmenu-quit", 193 | label: "退出浏览器", 194 | class: "menuitem-iconic", 195 | oncommand: "Application.quit();", 196 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACtElEQVQ4jY2ST0gUYRjGn9m1Yb/d+WZ3/u/MzsqMMy4uC0ogDawEkuDBhCCQlAg9SBety4aXooiQPRh0bUnKQ38gKOlkFpGEWmQEJRsVKaXW6qpdlDp0mC4aW2L1Xj543uf3vu/3fh/w92gEcB5A9T98O6O5uTnEcdxkJBLxo9Fo4X85DcBZAPt6enpCyWTyhWmaK5Zl3drKtwMYAEB2kISQBCFkihDygxAymcvlZNd1p13XLafT6eGuri6ZEPKJEPKdEHLHMIxwJR+klN6RZbkcj8eXPc8rjI6OxhzHeeo4Trm2tvZaoVAINzQ03Nc07bMoil8ppRd/0ZIkHRZFcS2RSCy2tLTc3djYUFpbWyO2bT+3LKvsuu51AJidnU17nvfEMIwFQRCWFEXZu13ghqZp5bq6uuLY2Fj91hJjyWRyxjTNck1Nzc3tZoODgwcty/qoquqaJEkX0NTURGVZnlFVdbWxsfHqtnFgYIDquv5SEIRv1dXVt7d13/f3ZDKZcUVRVlVVvQfP80xZlouyLK+n0+nTlYvp7u4+lc1mp/r7+49U6qlUaliSpHVN0ybQ29urKYryShCEdcMw8pXGYrHIbm5uxn3fD/z21pp2SxCEdV3XH8D3/SrTNMcppSuxWOxxR0dHcLdPAgCZTCYei8WKlNKy4zhXAADZbPYMx3Gr4XB4mef5k38rwHHcpUgksszz/Ep7e/tRAMDIyIiTSCResyy7yLLsQiAQOAGA/YONVlVVDYZCoS8sy352XffR3Nxc9Fe2r6/vWDQaXQoEAgvBYLDEMMxDAOcA9APIA5gOBoPLDMMsqqr6Pp/PH9gxXi6XO67r+hsAJQAlhmFWAaxtnSWGYUq2bc8MDQ0d2vWOExMT+9va2i7btv2M5/l3lNIPoii+TaVSk52dnUPz8/P1lf6fdmi4VMHjbpAAAAAASUVORK5CYII=" 197 | } 198 | ] -------------------------------------------------------------------------------- /anoBtn/anoBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/feiruo/userChromeJS/56b82ccf70e2236157bbbc9b24553b02ac450bd7/anoBtn/anoBtn.png -------------------------------------------------------------------------------- /bookmarkallmod.uc.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name bookmarkallmod.uc.js 3 | // @description 浏览器退出时保存所有页面 4 | // @compatibility Firefox16 5 | // @modby feiruo 6 | // @charset UTF-8 7 | // @include chrome://browser/content/browser.xul 8 | // @id [77E1FF6F] 9 | // @inspect window.BookmarkAll 10 | // @startup window.BookmarkAll.init(); 11 | // @shutdown window.BookmarkAll.onDestroy(); 12 | // @optionsURL about:config?filter=BookmarkAll. 13 | // @config window.BookmarkAll.openPref(); 14 | // @reviewURL http://bbs.kafan.cn/thread-1640643-1-1.html 15 | // @homepageURL https://github.com/feiruo/userChromeJS/ 16 | // @downloadURL https://github.com/feiruo/userChromeJS/blob/master/bookmarkallmod.uc.js 17 | // @version 1.3.1 2015.04.18 20:00 修复创建文件夹逻辑问题。 18 | // @version 1.3 2015.04.12 10:00 重建、优化代码。 19 | // @version 1.2.1 20 | // @version 1.2 修改动作方式,可以通过函数调用实时启用禁用和实时保存 21 | // @version 1.1 修复在没有书签保存的情况下仍然创建一个时间文件夹的问题 22 | // @version 1.0 23 | // @note 保存所有页面为书签 24 | // @note 注意:对于未载入标签,存入的书签名是URL,只有载入之后才能获取标题 25 | // ==/UserScript== 26 | /** 27 | * 参考bookmark_all_onclose(https://j.mozest.com/zh-CN/ucscript/script/58) 28 | */ 29 | location == "chrome://browser/content/browser.xul" && (function() { 30 | if (window.BookmarkAll) { 31 | window.BookmarkAll.onDestroy(); 32 | delete window.BookmarkAll; 33 | } 34 | var BookmarkAll = { 35 | get BMSV() { 36 | return Cc["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Ci.nsINavBookmarksService); 37 | }, 38 | get Time() { 39 | var now = new Date(); 40 | return now.toLocaleFormat(this.DateParse); 41 | }, 42 | 43 | get prefs() { 44 | delete this.prefs; 45 | return this.prefs = Services.prefs.getBranch("userChromeJS.BookmarkAll."); 46 | }, 47 | 48 | get Window() { 49 | var windowsMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"] 50 | .getService(Components.interfaces.nsIWindowMediator); 51 | return windowsMediator.getMostRecentWindow("BookmarkAll:Preferences"); 52 | }, 53 | 54 | init: function() { 55 | var ins = $("devToolsSeparator"); 56 | ins.parentNode.insertBefore($C("menuitem", { 57 | id: "BookmarkAll_set", 58 | label: "BookmarkAll配置", 59 | oncommand: "BookmarkAll.openPref();", 60 | image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAVCAYAAABPPm7SAAABLklEQVQ4je3UQSuEURgF4MdsLCwsWFBs0PwaykIpTYok/A47/AYre9spNRZWLGWhpKSwUJhsNMZYzFHfDBkWdm6dxXvuOee+9/Z+H/RjFWd4QasHXqJdjdc6HrPZxGsPNKN9jNd5iAPMY7YH5qNtxauRYsXP10o8DYW7Lf0iYKng+w/4q4A+lDEdlMP9KGAYm9rjehKchRv+LmAR49jHMWYwFMyE28dYtB0Bb9jWHtEqpnLSQCBcNZrteDoC6tjDCEbT8lGwGW4kmnp3QAu7GMRETur+jKvZG4z20xtUMIla6ifsBE/hatFUvnqDLRymfsAaSsFauFY0W8UrvAXPIe6xHOPHKoW7j+Y5niZcF9q5TXtFczGkgruC/pL2b+kKp5jTOXHdqw8LuMANNt4Bftqn5GqcsQAAAAAASUVORK5CYII=", 61 | class: "menuitem-iconic", 62 | }), ins); 63 | 64 | this.loadSetting(); 65 | this.prefs.addObserver('', this.PrefsObs, false); 66 | window.addEventListener("unload", BookmarkAll.Bookmark, false); 67 | }, 68 | 69 | onDestroy: function() { 70 | window.removeEventListener("unload", BookmarkAll.Bookmark, false); 71 | }, 72 | 73 | PrefsObs: function(subject, topic, data) { 74 | if (topic == 'nsPref:changed') { 75 | switch (data) { 76 | case 'Enable': 77 | case 'ToolbarFolder': 78 | case 'Index': 79 | case 'DateParse': 80 | case 'Dirs': 81 | case 'Exclude': 82 | BookmarkAll.loadSetting(data); 83 | break; 84 | } 85 | } 86 | }, 87 | 88 | loadSetting: function(type) { 89 | if (!type || type === "Enable") 90 | this.Enable = this.getPrefs(0, "Enable", false); 91 | 92 | if (!type || type === "ToolbarFolder") 93 | this.ToolbarFolder = this.getPrefs(0, "ToolbarFolder", false); 94 | 95 | if (!type || type === "Index") 96 | this.Index = this.getPrefs(1, "Index", 15); 97 | 98 | if (!type || type === "DateParse") 99 | this.DateParse = this.getPrefs(2, "DateParse", "%Y/%m/%d %H:%M:%S"); 100 | 101 | if (!type || type === "Dirs") { 102 | var Dirs = this.getPrefs(2, "Dirs", "Conversations"); 103 | Dirs = Dirs.replace(/\//g, '\\').split('\\');; 104 | this.Dirs = Dirs; 105 | } 106 | 107 | if (!type || type === "Exclude") { 108 | var Exclude = this.getPrefs(2, "Exclude", "chrome://, resource://, about:, http://www.baidu.com/baidu?, http://www.baidu.com/s?"); 109 | Exclude = Exclude.trim(); 110 | if (Exclude.indexOf(',') != -1) 111 | Exclude = Exclude.replace(/,\s*/g, '\n'); 112 | this.prefs.setCharPref("Exclude", Exclude); 113 | Exclude = Exclude.split(/\n+/).map(function(s) s.trim()); 114 | this.Exclude = Exclude; 115 | } 116 | }, 117 | 118 | /*****************************************************************************************/ 119 | Bookmark: function(isAlert) { 120 | var that = BookmarkAll; 121 | 122 | if (!that.Enable) return; 123 | 124 | if (that.toolbarFolder) 125 | TF = that.BMSV.toolbarFolder; 126 | else 127 | TF = that.BMSV.bookmarksMenuFolder; 128 | 129 | var historyService = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService), 130 | options = historyService.getNewQueryOptions(), 131 | query = historyService.getNewQuery(); 132 | 133 | query.setFolders([TF], 1); 134 | var result = historyService.executeQuery(query, options), 135 | rootNode = result.root; 136 | 137 | rootNode.containerOpen = true; 138 | var TTF = that.FindFolders(rootNode); 139 | rootNode.containerOpen = false; 140 | 141 | var Tid = TTF.itemId, 142 | nu = TTF.nu; 143 | 144 | if (TTF.itemId) 145 | TF = TTF.itemId; 146 | 147 | if (TTF.nu != that.Dirs.length) { 148 | for (var i in that.Dirs) { 149 | if (i < TTF.nu) continue; 150 | TF = that.BMSV.createFolder(TF, that.Dirs[i], 0); 151 | } 152 | } 153 | 154 | var TFT = that.BMSV.createFolder(TF, that.Time, 0); 155 | 156 | var isTF = that.Exce(TFT); 157 | 158 | if (!isTF) 159 | that.BMSV.removeItem(TFT); 160 | that.DelOld(TF); 161 | }, 162 | 163 | FindFolders: function(TF, dir) { 164 | let itemId, nu = 0; 165 | 166 | function FindFolder(TF, Dirs) { 167 | for (var i = 0; i < TF.childCount; i++) { 168 | var node = TF.getChild(i); 169 | if (node.type != 6) continue; 170 | if (node instanceof Ci.nsINavHistoryContainerResultNode) { 171 | if (node.title != Dirs[nu]) continue; 172 | nu = nu + 1; 173 | itemId = node.itemId; 174 | if (!Dirs[nu]) break; 175 | var oldOpen = node.containerOpen; 176 | node.containerOpen = true; 177 | FindFolder(node, Dirs); 178 | node.containerOpen = oldOpen; 179 | break; 180 | } 181 | } 182 | } 183 | 184 | FindFolder(TF, this.Dirs); 185 | return { 186 | itemId: itemId, 187 | nu: nu 188 | }; 189 | }, 190 | 191 | Exce: function(TFT) { 192 | var that = BookmarkAll; 193 | var isTF; 194 | var browsers = document.getElementById('content').browsers; 195 | for (var i = 0; i < browsers.length; ++i) { 196 | var webNav = browsers[i].webNavigation; 197 | var url = webNav.currentURI.spec; 198 | var title = ""; 199 | try { 200 | var doc = webNav.document; 201 | title = doc.title || url; 202 | } catch (e) { 203 | title = url; 204 | } 205 | for (var j in that.Exclude) { 206 | var rex = new RegExp(that.Exclude[j]); 207 | if (rex.test(url)) 208 | var isEx = true; 209 | } 210 | if (isEx) continue; 211 | isTF = true; 212 | that.BMSV.insertBookmark(TFT, webNav.currentURI, -1, title); 213 | } 214 | return isTF; 215 | }, 216 | 217 | DelOld: function(TF) { 218 | var Old = []; 219 | for (var i = 0; 220 | (this.BMSV.getIdForItemAt(TF, i) != -1); i++) { 221 | var temp_folder = this.BMSV.getIdForItemAt(TF, i); 222 | Old.push(temp_folder); 223 | } 224 | if (Old.length <= this.Index) return; 225 | for (var j = this.Index; j < Old.length; j++) { 226 | this.BMSV.removeItem(Old[j]); 227 | } 228 | }, 229 | /*****************************************************************************************/ 230 | getPrefs: function(type, name, val) { 231 | if (type === 0) { 232 | if (!this.prefs.prefHasUserValue(name) || this.prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_BOOL) 233 | this.prefs.setBoolPref(name, val); 234 | return this.prefs.getBoolPref(name); 235 | } 236 | if (type === 1) { 237 | if (!this.prefs.prefHasUserValue(name) || this.prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_INT) 238 | this.prefs.setIntPref(name, val); 239 | return this.prefs.getIntPref(name); 240 | } 241 | if (type === 2) { 242 | if (!this.prefs.prefHasUserValue(name) || this.prefs.getPrefType(name) != Ci.nsIPrefBranch.PREF_STRING) 243 | this.prefs.setCharPref(name, val); 244 | return this.prefs.getCharPref(name); 245 | } 246 | }, 247 | 248 | openPref: function() { 249 | if (this.Window) 250 | this.Window.focus(); 251 | else { 252 | var option = this.option(); 253 | window.openDialog("data:application/vnd.mozilla.xul+xml;charset=UTF-8," + option, '', 'chrome,titlebar,toolbar,centerscreen,dialog=no'); 254 | } 255 | }, 256 | option: function() { 257 | xul = '\ 258 | \ 265 | \ 266 | \ 267 | \ 268 | \ 269 | \ 270 | \ 271 | \ 272 | \ 273 | \ 274 | \ 285 | \ 286 | \ 287 | \ 288 | \ 289 | \ 290 | \ 291 | \ 292 | \ 293 | \ 296 | \ 297 | \ 300 | \ 301 | \ 304 | \ 305 | \ 306 | \ 307 | \ 308 | \ 309 | \ 310 | \ 311 | \ 312 | \ 313 | \ 314 |