您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
click a link always open a new tabs
// ==UserScript== // @name click a link always open a new tab // @description click a link always open a new tabs // @icon https://img1.baidu.com/it/u=1412332306,99938487&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500 // @license MIT // @version 0.0.2 // @author lee mathew // @run-at document-end // @include http*://* // @namespace https://greasyfork.org/users/1090699 // ==/UserScript== (function () { // const onClick = function (event, href) { // // event.preventDefault(); // console.log(event, href) // } let elements = document.querySelectorAll("a") elements.forEach(el => { //如果是a标签的href只有javascript:;之类的,需要跳过 if (el.href.indexOf('javascript:') === -1&&['http','https'].includes(el.href.split(":")[0])) { el.target = '_blank' // let params = queryURLparamsRegEs6(el.href) // params['new_tab_return_path'] = window.location.href // el.href = paramsToUrl(params) // el.addEventListener('click', (event) => { onClick(event, el.href) }) } }) // let params = queryURLparamsRegEs6(window.location.href) // if (params['new_tab_return_path']) { // console.log('pushState!!!', location.href) // setTimeout(() => { // var thisLocation = location.href; // // history.replaceState({ page: 'intercept', entered: false }, '', intercetpUrl); // history.pushState({ page: 'current' }, '', thisLocation); // }, 1000) // } // window.addEventListener("popstate", e => { // alert("监听到了浏览器的返回按钮事件"); // }, false); // function queryURLparamsRegEs6(url) { // let obj = {} // obj.baseUrl = url.split("?")[0] // if (url.indexOf('?') < 0) return obj // let arr = url.split('?') // url = arr[1] // let array = url.split('&') // for (let i = 0; i < array.length; i++) { // let arr2 = array[i] // let arr3 = arr2.split('=') // obj[arr3[0]] = arr3[1] // } // return obj // } // function paramsToUrl(params) { // let ans = params.baseUrl // delete params.baseUrl // Object.keys(params).forEach((key, index) => { // if (index === 0) { // ans += '?' // } else { // ans += '&' // } // ans += `${key}=${params[key]}` // }) // return ans // } })();