您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
except for the link in the same directory(the link whose web address are same before the last '/' as the current url)
当前为
// ==UserScript== // @name open all links in the new tab // @description except for the link in the same directory(the link whose web address are same before the last '/' as the current url) // @include http://* // @include https://* // @author yechenyin // @version 0.9 // @namespace https://greasyfork.org/users/3586-yechenyin // @grant GM_openInTab // ==/UserScript== (function() { "use strict"; var exception = ['https://m.leiphone.com/page/']; function getAncestorLink(element) { while (element && element.nodeName != "A") { element = element.parentNode; } if (element.nodeName && element.nodeName === "A" && element.href && element.href.indexOf('http') === 0) return element; } String.prototype.matched = function(strings) { for (var i = 0; i < strings.length; i++) { if (typeof strings[i] == 'string' && this.indexOf(strings[i]) === 0) return true; else if (strings[i] instanceof RegExp && this.test(strings[i])) return true; } return false; }; var setLinkAction = function(node) { if (node && !node.hasAttribute('setted') && node.nodeName && node.nodeName === "A" && node.href && node.href.indexOf('http') === 0) { node.setAttribute('setted', ''); node.addEventListener('click', function(e) { e.preventDefault(); e.stopPropagation(); if (this && this.href && !/^(\d+|Next|Prev|>|<|下一页|上一页|下一頁|上一頁|回首頁|次へ|前へ)$/.test(this.innerText) && !this.href.matched(exception)) { console.log(this, e.target); window.open(this.href); } else { location.href = this.href; } }); } }; for (var i = 0; i < document.getElementsByTagName("A").length; i++) { setLinkAction(document.getElementsByTagName("A")[i]); } var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; if (MutationObserver) { var observer = new MutationObserver(function(records) { records.map(function(record) { setLinkAction(record.target); for (var i = 0; i < record.target.getElementsByTagName("A").length; i++) { setLinkAction(record.target.getElementsByTagName("A")[i]); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } })();