您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
直接的链接,更少的跟踪。
- // ==UserScript==
- // @name ACT.Google.DM.Trackless
- // @name:zh-CN ACT.谷歌.DM.直链无跟踪
- // @description Make links direct and track less.
- // @description:zh-CN 直接的链接,更少的跟踪。
- // @author ACTCD
- // @version 20231108.1
- // @license GPL-3.0-or-later
- // @namespace ACTCD/Userscripts
- // @supportURL https://github.com/ACTCD/Userscripts#contact
- // @homepageURL https://github.com/ACTCD/Userscripts
- // @match *://www.google.com/*
- // @grant none
- // @inject-into content
- // @run-at document-start
- // ==/UserScript==
- (function () {
- "use strict";
- window.addEventListener(
- "click",
- (event) => {
- const anchor = event.target.closest("a");
- if (!anchor) return;
- anchor.removeAttribute("ping");
- anchor.setAttribute("rel", "noopener noreferrer");
- const href = anchor.getAttribute("href");
- if (!href || href == "#") return;
- if (["button"].includes(anchor.getAttribute("role"))) return;
- const url = new URL(href, location);
- if (href.slice(0, 5) == "/url?") {
- anchor.href = url.searchParams.get("url") || href;
- }
- event.stopImmediatePropagation();
- },
- true,
- );
- if (location.pathname == "/search") {
- window.addEventListener(
- "contextmenu",
- (event) => {
- event.stopImmediatePropagation();
- },
- true,
- );
- window.addEventListener(
- "mousedown",
- (event) => {
- event.stopImmediatePropagation();
- },
- true,
- );
- window.addEventListener(
- "mouseup",
- (event) => {
- event.stopImmediatePropagation();
- },
- true,
- );
- }
- const inline_script = () => {
- window.navigator.sendBeacon = () => console.log("BAN: Beacon");
- };
- const div = document.createElement("div");
- div.style.display = "none";
- const shadowRoot = div.attachShadow({ mode: "closed" });
- const script = document.createElement("script");
- script.textContent = "(" + inline_script + ")();";
- shadowRoot.append(script);
- if (document.body) {
- document.body.append(div);
- } else {
- new MutationObserver((mutationList, observer) => {
- document.body && (observer.disconnect(), document.body.append(div));
- }).observe(document, { subtree: true, childList: true });
- }
- })();