Greasy Fork 支持简体中文。

Remove URL Tracking Parameters

移除網址中的跟踪參數

目前為 2024-09-15 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Remove URL Tracking Parameters
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.3
  5. // @description 移除網址中的跟踪參數
  6. // @author abc0922001
  7. // @match *://*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // 使用 Set 來存儲跟踪參數
  16. const trackingParams = new Set([
  17. 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',
  18. 'fbclid', 'gclid', 'yclid', 'mc_cid', 'mc_eid', 'dclid','from'
  19. ]);
  20.  
  21. function removeTrackingParams(url) {
  22. const urlObj = new URL(url);
  23. let params = urlObj.searchParams;
  24. let removed = false;
  25.  
  26. for (let param of trackingParams) {
  27. if (params.has(param)) {
  28. params.delete(param);
  29. removed = true;
  30. }
  31. }
  32.  
  33. return removed ? urlObj.toString() : url;
  34. }
  35.  
  36. function cleanURL() {
  37. try {
  38. const currentUrl = window.location.href;
  39. const cleanedUrl = removeTrackingParams(currentUrl);
  40.  
  41. if (cleanedUrl !== currentUrl) {
  42. window.history.replaceState({}, document.title, cleanedUrl);
  43. }
  44. } catch (error) {
  45. console.error('Error processing URL:', error);
  46. }
  47. }
  48.  
  49. // 初始清理
  50. cleanURL();
  51.  
  52. // 監聽 URL 變化
  53. window.addEventListener('popstate', cleanURL);
  54.  
  55. // 對於單頁應用,可以考慮額外監聽自定義事件
  56. // 例如:window.addEventListener('routechange', cleanURL);
  57. })();