Pocket のトラッキングURLパラメータを外す

  • // ==UserScript==
    // @name         Pocket のトラッキングURLパラメータを外す
    // @title        Pocket のトラッキングURLパラメータを外す
    // @namespace    https://let.hatelabo.jp/Lhankor_Mhy/let/kLOm3rHEgeAA
    // @version      0.1.1
    // @description  Pocket のリンクから ?utm_source=pocket_saves などを外します。
    // @author       Lhankor_Mhy
    // @license      CC0
    // @match        https://getpocket.com/*
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=getpocket.com
    // @run-at       document-idle
    // @grant        none
    // ==/UserScript==
    
    {
        let timerId;
        new MutationObserver((mutationList, observer) => {
            mutationList.forEach((mutation) => {
                switch (mutation.type) {
                    case "childList":
                        clearTimeout(timerId);
                        timerId = setTimeout(omitTrackingParameter, 500)
                        break;
                }
            });
        }).observe(document.body, {
            childList: true,
            subtree: true,
        });
        const omitTrackingParameter = () =>
            document.querySelectorAll('a:where([data-cy="image-link"],[data-cy="content-block"],[data-cy="view-original"],[data-cy="publisher-link"])').forEach(el => {
                const url = new URL(el.href);
                const searchPrams = url.searchParams;
                searchPrams.delete('utm_source');
                url.search = searchPrams.toString();
                el.href = url.href;
            })
    }
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2024/01/15 13:56:28 - 01/15
  2. 2023/12/07 16:17:40 - 2023-12-07
  3. 2023/12/06 12:46:46 - 2023-12-06
  4. 2023/12/06 12:40:30 - 2023-12-06