您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
移除網址中的跟踪參數
- // ==UserScript==
- // @name Remove URL Tracking Parameters
- // @namespace http://tampermonkey.net/
- // @version 1.4.1
- // @description 移除網址中的跟踪參數
- // @author abc0922001
- // @match *://*/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function () {
- "use strict";
- // 此函式內所使用的追蹤參數集合,包含各大行銷工具常見的參數,設計考量在於方便統一移除 URL 中所有可能的追蹤參數。
- const trackingParams = new Set([
- "utm_source",
- "utm_medium",
- "utm_campaign",
- "utm_term",
- "utm_content",
- "fbclid",
- "gclid",
- "yclid",
- "mc_cid",
- "mc_eid",
- "dclid",
- "from",
- "utm_channel",
- "utm_id",
- "msclkid",
- "mkt_tok",
- "pk_campaign",
- "pk_kwd",
- "affid",
- ]);
- /*
- * 此函式 removeTrackingParams 用來移除傳入 URL 中之跟踪參數,
- * 並回傳處理後之 URL 字串,
- * 設計考量在於提升空間與時間 複 雜 度 效能。
- */
- function removeTrackingParams(url) {
- const urlObj = new URL(url);
- let removed = false;
- for (const key of Array.from(urlObj.searchParams.keys())) {
- if (trackingParams.has(key)) {
- urlObj.searchParams.delete(key);
- removed = true;
- }
- }
- return removed ? urlObj.toString() : url;
- }
- /*
- * 此函式 cleanURL 用來更新當前瀏覽器 URL,
- * 移除其中之跟踪參數並同步更新歷史記錄,
- * 旨在優化使用者隱私與瀏覽體驗。
- */
- function cleanURL() {
- try {
- const currentUrl = window.location.href;
- const cleanedUrl = removeTrackingParams(currentUrl);
- if (cleanedUrl !== currentUrl) {
- window.history.replaceState({}, document.title, cleanedUrl);
- }
- } catch (error) {
- console.error("Error processing URL:", error);
- }
- }
- // 初始 URL 清理
- cleanURL();
- // 監聽瀏覽器歷史狀態變更
- window.addEventListener("popstate", cleanURL);
- // 若需支援單頁應用程式,可額外監聽自訂路由事件
- // window.addEventListener('routechange', cleanURL);
- })();