Open links in new tab

Open links in new tab (Ctrl-click or Middle-click loads it in background), works on dynamically added content too.

目前為 2015-10-12 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Open links in new tab
// @description  Open links in new tab (Ctrl-click or Middle-click loads it in background), works on dynamically added content too.
// @namespace    wOxxOm.scripts
// @author       wOxxOm
// @version      1.0.1
// @license      MIT License
// @grant        GM_openInTab
// @run-at       document-start
// @require      https://greasyfork.org/scripts/12228/code/setMutationHandler.js
// ==/UserScript==

attachHandler(document.getElementsByTagName('a'));

setMutationHandler(document, 'a', function(nodes) {
	attachHandler(nodes);
	return true;
});

function attachHandler(nodes) {
	nodes.forEach(function(node) {
		if (node.target != '_blank') {
			node.onclick = clickHandler;
			node.addEventListener('click', clickHandler);
		}
	});
}

function clickHandler(e) {
	if (e.button > 1)
		return;
	e.preventDefault();
	e.stopPropagation();
	e.stopImmediatePropagation();
	GM_openInTab(this.href, e.button || e.ctrlKey);
}