Gmailのパーマリンク取得
by
Lhankor_Mhy
2023-12-19 [2023/12/19 18:52:57]
ブックマークレットを使ってからメールスレッドやタイトルなどをクリックしてください
@@ -8,14 +8,32 @@
{
- const targetDataAttribute = "data-legacy-last-message-id"
+ const targetDataAttributeNames = [
+ "data-legacy-last-message-id",
+ "data-legacy-message-id",
+ "data-legacy-thread-id",
+ ]
- alert('パーマリンクを取得するメールをクリック')
- document.documentElement.addEventListener('click', e => {
- const targetElement = (e.target.getAttributeNames().includes(targetDataAttribute)) ?
- e.target :
- e.target.querySelector(`[${targetDataAttribute}]`)
- prompt('パーマリンク',`https://mail.google.com/mail/u/0/#all/${targetElement.getAttribute(targetDataAttribute)}`)
+ alert('パーマリンクを取得するメールをクリック')
+ console.log('test')
+ document.documentElement.addEventListener('click', e => {
+ const target = e.target;
+ let id;
+ console.log(target, targetDataAttributeNames)
+ for (const targetDataAttribute of targetDataAttributeNames) {
+ console.log(target, target.closest(`[${targetDataAttribute}]`))
+ if (target.getAttributeNames().includes(targetDataAttribute)) {
+ id = target.getAttribute(targetDataAttribute);
+ break;
+ }
+ if (target.closest(`[${targetDataAttribute}]`)) {
+ id = target.closest(`[${targetDataAttribute}]`).getAttribute(targetDataAttribute);
+ break;
+ }
+ }
+ console.log(id)
- }, { once: true })
-}
+ prompt('パーマリンク', `https://mail.google.com/mail/u/0/#all/${id}`)
+
+ }, { once: true })
+}
/*
* @title Gmailのパーマリンク取得
* @description ブックマークレットを使ってからメールスレッドやタイトルなどをクリックしてください
* @include https://mail.google.com/
* @license CC0
* @javascript_url
*/
{
const targetDataAttributeNames = [
"data-legacy-last-message-id",
"data-legacy-message-id",
"data-legacy-thread-id",
]
alert('パーマリンクを取得するメールをクリック')
console.log('test')
document.documentElement.addEventListener('click', e => {
const target = e.target;
let id;
console.log(target, targetDataAttributeNames)
for (const targetDataAttribute of targetDataAttributeNames) {
console.log(target, target.closest(`[${targetDataAttribute}]`))
if (target.getAttributeNames().includes(targetDataAttribute)) {
id = target.getAttribute(targetDataAttribute);
break;
}
if (target.closest(`[${targetDataAttribute}]`)) {
id = target.closest(`[${targetDataAttribute}]`).getAttribute(targetDataAttribute);
break;
}
}
console.log(id)
prompt('パーマリンク', `https://mail.google.com/mail/u/0/#all/${id}`)
}, { once: true })
}
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。