Gtalk 軟件的最下方有個很好又很實用的功能,就是 Gmail 郵件提醒功能。會定時更新你 Gmail 中未讀新郵件的數(shù)量。
試想如果我們將此功能移植到 Firefox 上一定有趣!
第一步,在狀態(tài)欄中顯示圖標(biāo)和數(shù)據(jù)。
通過 《如何創(chuàng)建 Firefox 的 Jetpack 擴展》 這篇文章,我們可以輕易的創(chuàng)建:
jetpack.statusBar.append({ html: '<img src="http://mail.google.com/mail/images/favicon.ico"/><span id="count"></span>', //Gmail郵件圖標(biāo)和未讀新郵件數(shù) width: 55, //狀態(tài)欄上的寬度為55 onReady: function(widget) { $("#count", widget).css({ //給未讀新郵件數(shù)添加樣式 cursor: "pointer", paddingLeft:"4px", fontFamily: "Tahoma, Arial, sans-serif", verticalAlign: "top", fontSize: "10px", lineHeight:"18px", }); } });
第二步,獲取 Gmail 的數(shù)據(jù),更新未讀新郵件數(shù)。
可以通過 Gmail 郵件的 Feed 獲得(需登錄):https://mail.google.com/mail/feed/atom
Feed 源碼中的 fullcount 標(biāo)簽是用來記錄當(dāng)前的未讀新郵件數(shù)。
OK,首先數(shù)據(jù)源有了。接著,我們使用再熟悉不過的 Ajax 技術(shù),獲取到數(shù)據(jù)并賦給指定的元素。
function update(widget) { var widget = $(widget); $.get(" var el = $(xml).find("fullcount"); // 記錄未讀新郵件數(shù)的節(jié)點 if(el){ var newcount = parseInt(el.get(0).textContent); widget.find("#count").text(newcount); //賦給指定的元素 } else { //如果未登錄,顯示“Login” widget.find("#count").text( "Login" ); } }); }
我們還可以通過進行一些優(yōu)化:比如當(dāng)未讀新郵件數(shù)大于原來的郵件數(shù)時,增加提示信息等。
提示信息這里使用 jetpack.notifications.show(options) 方法,options 參數(shù)有三個屬性:title (String):通知的標(biāo)題;icon (URL):通知 icon 的 URL;body (String):通知的主題內(nèi)容。
優(yōu)化后的代碼如下:
var count = 0; function update(widget) { var widget = $(widget), notify = function(msg) { // 定義通知的公用方法 jetpack.notifications.show({ title: "Gmail", body: msg, icon: " }); }; $.get(" var el = $(xml).find("fullcount"); // 記錄未讀新郵件數(shù)的節(jié)點 if(el){ var newcount = parseInt(el.get(0).textContent); if(newcount > count) { // 如果未讀新郵件數(shù)大于原來的郵件數(shù),則提示來自哪里 var sender = $(xml).find("name").get(0).textContent; notify("New message from "+sender); } count = newcount; widget.find("#count").text(count); //賦給指定的元素 } else { //如果未登錄,提示登錄 widget.find("#count").text( "Login" ); notify("Please login to Gmail"); } }); }
出處:藍色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 Firefox的Jetpack擴展案例分析 [2]
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|