我正在研究一個擴展的擴展,其目的是向gmail中的每個附件添加一個「export to gdocs」鏈接。GMail:在每個附件下載鏈接旁邊添加一個鏈接
我已經實現了成功添加「下載」鏈接旁邊鏈接的部分代碼,但是我面臨着一個我不知道如何解決的問題。
問題是:在郵件線程中(有幾個回覆),摺疊的郵件不受我的腳本的影響 - 並且當它們展開時,鏈接(如預期的)不會添加。
發生這種情況的原因是摺疊的郵件在運行時在展開時加載 - 所以當我的腳本在頁面加載時執行時,由於郵件內容尚未加載,所以沒有鏈接添加。
我嘗試使用原型框架和示例代碼,我發現這裏添加更新處理:
http://groups.google.com/group/prototype-scriptaculous/browse_thread/thread/5ad539212ea07716?pli=1(最後一篇)
,但它不工作 - 雖然解本身是有效的,並且使用gmail。
將部分工作溶液使用chrome.tabs的onUpdate聽者(在背景文件中註冊),以及一些實現的jquery(注入作爲內容腳本)其中:
選擇具有「CR HF」 CSS類表(這是用來包含連接鏈路的那些)
$('table.cf.hr').each(function() {
injectLink($(this));
});
爲每一個,查找下載鏈接,提取從下載網址一些參數, 創建一個新的鏈接,旁邊增加了最後一個環節
function injectLink(table) {
var downloadLink = table.find("td:last a:last");
var exportToGdocsLink = downloadLink.clone().attr(...)...
...
downloadLink.after(exportToGdocsLink).after("<span> </span>");
}
有沒有人實現了與gmail交互的chrome擴展?任何暗示讓我想出如何繼續?
UPDATE
代碼的最新版本是這樣的:
$('#canvas_frame').ready(function() {
var doc = frames['canvas_frame'].contentDocument;
$(doc).find('table.cf.hr').livequery(function() {
injectLink($(this));
});
});
,但我試過幾個「結合」 - 這是「最接近於預期」的結果。 canvas_frame
是包含整個Gmail接口的iframe。具有css類cr hf
的表格包含附件鏈接。
感謝 安東尼奧只有當你正趕上事件
不會jquery的'.live()'能夠解決它嗎? – serg
從來沒有用過......但我不知道它如何幫助我 - 據我所知,沒有「更新內容」事件。任何想法,我應該使用live()註冊什麼樣的事件? – Antonio
@Antonio - 你是否設法解決這個問題?您的項目是否有機會在某處開放源代碼? – Shaihi