Greasy Fork 还支持 简体中文。

Google Analytics opt-out

Defines the Google Analytics opt-out object on every page.

目前為 2021-10-19 提交的版本,檢視 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        Google Analytics opt-out
// @namespace   zdnq5fclhrdh8lgo
// @match       *://*/*
// @grant       none
// @version     1.2
// @license     MIT
// @description Defines the Google Analytics opt-out object on every page.
// @run-at      document-start
// @inject-into content
// ==/UserScript==

(function () {
	"use strict";
	
	const defineOptout = (null, function (context = window, exporter = f => f) {
		const optout = new window.Object();
		const ioo = exporter(function ioo() { return true; });

		
		// Define property directly if this is an Xray
		Reflect.defineProperty(optout.wrappedJSObject ?? optout, "ioo", {
			enumerable: true,
			configurable: false,
			get: exporter(() => ioo),
			set: exporter(() => {})
		});
		
		Reflect.defineProperty(context, "_gaUserPrefs", {
			enumerable: false,
			configurable: false,
			get: exporter(() => optout),
			set: exporter(() => {})
		});
	});
	
	
	if ("wrappedJSObject" in window) {
		// Bypass Firefox sandbox
		const context = window.wrappedJSObject;
		defineOptout(context, f => exportFunction(f, context));
	} else {
		// Inject script tag (Chrome)
		const script = document.createElement("script");
		script.text = `"use strict";(${defineOptout})();`;
		(document.head ?? document.documentElement).prepend(script);
		script.remove();
	}
})();