Gmailのパーマリンク取得

  • /*
     * @title Gmailのパーマリンク取得
     * @description メールを開いてブックマークレットを使ってからページをクリックすると、メールのパーマリンクをクリップボードにコピーします。
     * @include https://mail.google.com/
     * @license CC0
     * @javascript_url
     */
    
    
    (async () => {
        const targetDataAttributeName = "data-thread-perm-id"
        const waitForEvent = (eventTarget, eventType) => new Promise((resolve, reject) =>
            eventTarget.addEventListener(eventType, resolve, { once: true, signal: AbortSignal.timeout(10000) })
        )
    
        const targetElement = document.querySelector(`[${targetDataAttributeName}]`)
        if (!targetElement) {
            alert("メールを開いてからブックマークレットを使ってください")
            return
        }
        const threadId = targetElement?.getAttribute(targetDataAttributeName)
    
        await waitForEvent(document, 'mousedown')
    
        navigator.clipboard.writeText(`https://mail.google.com/mail/u/0/#all/${encodeURIComponent(threadId)}`)
            .then(() => alert("メールのパーマリンクをクリップボードにコピーしました"))
            .catch(err => {
                console.error("クリップボードへのコピーに失敗しました", err)
                alert("クリップボードへのコピーに失敗しました")
            });
    
    })()
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2025/05/09 14:34:19 - 2 days ago
  2. 2025/05/09 14:32:59 - 2 days ago
  3. 2023/12/19 18:52:57 - 2023-12-19
  4. 2023/12/19 18:52:18 - 2023-12-19
  5. 2023/12/05 17:47:46 - 2023-12-05
  6. 2023/01/27 17:05:47 - 2023-01-27