2013-04-06 58 views
4

我正在尋找一種方式來弄清楚如何獲得線程ID爲Gmail的特定郵件,之前它被髮送或在其中單擊發送按鈕的位置。獲取線程ID在Gmail

目前,我的JavaScript以刮等物品掉的電子郵件,並將它們存儲在其中工作得很好,除了爲線程ID一切記錄工作。

線程ID可以後我在URL中發送的電子郵件中找到:

https://mail.google.com/mail/u/0/?shva=1#inbox/13ddda647539dcca 

在這種情況下,線程ID(如果我是對的 - 是13ddda647539dcca

任何幫助。理解

回答

0

你可以嘗試:

var matched = window.location.hash.match(/[A-Za-z0-9]+$/); 
if (matched) { 
    // Found alphanumeric string at end of hash 
} 

,你可以得到的值w ith matched[0]

window.location.hash應該只抓住 「#收件箱/ 13ddda647539dcca」 的一部分。然後,正則表達式將匹配字符串末尾的任何字母數字字符。所以「收件箱」與線程ID之間用「/」分開的事實很重要。

當然,所有這一切都依賴於Gmail中保持URL相同的約定下,因爲它目前似乎是可靠性。

+0

感謝您的答覆。如果我只是從URL中獲取它,這將起作用,但我試圖在發送電子郵件之前獲取此ID - 或單擊** send **按鈕時。主要目的是讓我在發送後可以直接訪問這封電子郵件。 – HappyCry 2013-04-06 17:17:58

+0

@HappyCry我理解你的觀點,但我「有點困惑,這是爲了**新的電子郵件,還是爲**回覆了一個線程?當回覆一個線程時,它應該在URL中可用在你回覆的時候,我的方法應該可以工作,如果是新郵件,我不確定你想要什麼(除非郵件在撰寫期間已經保存)。在結尾處有「#compose」,只有在你發送/保存電子郵件後**之後,URL纔會改變爲擁有線程ID。我不認爲ID是在你最終發送它之前創建的,因爲ID是在服務器上創建 – Ian 2013-04-06 17:34:12

+0

我認爲你是對的,這種方法在回覆框中使用它是很好的,因爲ID是在服務器上創建的,你會想到我可以附加的任何其他唯一標識符* *發送**?感謝您的幫助,非常感謝。 – HappyCry 2013-04-06 17:39:26

4

如果有人仍有意 - 電子郵件是通過觀察出現在頁面的頂部發出後,您可以檢索線程ID。該跨度包含一個鏈接,該鏈接具有名爲'param'的屬性,該屬性具有線程ID。