360,百度网盘,微盘链接自动添加访问密码
// ==UserScript== // @name 360,百度网盘,微盘链接 // @author 林岑影 // @description 360,百度网盘,微盘链接自动添加访问密码 // @namespace // @icon http://disk.yun.uc.cn/favicon.ico // @license GPL version 3 // @encoding utf-8 // @date 18/07/2015 // @modified 11/13/2015 // @include * // @exclude http://pan.baidu.com/* // @exclude http://yunpan.360.cn/* // @exclude http://yunpan.cn/* // @exclude http://vdisk.weibo.com/* // @grant unsafeWindow // @grant GM_setClipboard // @run-at document-end // @version 2.1.1 // ==/UserScript== //QIQI修改,最后更新时间:2015-11-9 15:32 (function(window){ var autoHash = function(){ this.config = { domain: { "baidu":"pan.baidu.com/s/", "yunpan":"yunpan.cn", "vdisk":"vdisk.weibo.com" } } }; autoHash.prototype = { init: function(){ hash.nodeInsertedlistener({target:document.body}); document.addEventListener("DOMNodeInserted", hash.nodeInsertedlistener); }, nodeInsertedlistener: function(e){ var elem = e.target; if(typeof(elem) === "object"){ if(typeof(elem.querySelectorAll) !== "undefined"){ var alllink = elem.querySelectorAll("a"); for (var index in alllink) { if(hash.buttonsFilter(alllink[index])) { hash.replace(alllink[index]); } } } } }, buttonsFilter: function(elem) { var href = typeof(elem) === "object" ? elem.getAttribute("href") : ""; if (!href){ return false; } if (href.indexOf("#")>-1){ return false; } isDomain = false; for (var index in hash.config.domain) { if (href.indexOf(hash.config.domain[index]) > -1) { isDomain = true; break; } } return isDomain; }, replace: function(a){ var link = a.getAttribute("href"), body = document.body.innerHTML, arr_body = body.split('"' + link), text = arr_body[1].split('href=')[0], re = /(码|问)[\s|:|:]*([a-zA-Z0-9]{4,4})([\W\s]+|$)/g, r = re.exec(text); if (r && r[2]) { a.setAttribute("href", link+"#" + r[2]); } else { text = a.parentNode.innerText; r = re.exec(text); if (r && r[2]) { a.setAttribute("href", link + "#" + r[2]); } } } }; var hash = new autoHash(); hash.init(); }(window));