Google Analytics opt-out

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

目前为 2021-10-19 提交的版本。查看 最新版本

// ==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();
	}
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址