Firefox 的 Jetpack 扩展案例分析:Gmail 邮件提醒(2)
作者:blank 来源:怿飞博客 时间:2009-10-15 12:41:00
我们还可以通过进行一些优化:比如当未读新邮件数大于原来的邮件数时,增加提示信息等。
提示信息这里使用 jetpack.notifications.show(options) 方法,options 参数有三个属性:title (String):通知的标题;icon (URL):通知 icon 的 URL;body (String):通知的主题内容。
优化后的代码如下:
var count = 0;
function update(widget) {
var widget = $(widget),
notify = function(msg) { // 定义通知的公用方法
jetpack.notifications.show({
title: "Gmail",
body: msg,
icon: "http://mail.google.com/mail/images/favicon.ico"
});
};
$.get("https://mail.google.com/mail/feed/atom", function(xml) {
var el = $(xml).find("fullcount"); // 记录未读新邮件数的节点
if(el){
var newcount = parseInt(el.get(0).textContent);
if(newcount > count) { // 如果未读新邮件数大于原来的邮件数,则提示来自哪里
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");
}
});
}
第三步:设置定时更新数据。
我们设置每 1 分钟更新一次数据:
setInterval( function() { update(widget) }, 60*1000 );
第四步:设置点击扩展后的链接窗口。
$(widget).click(function() { //设置点击扩展后的链接窗口
jetpack.tabs.open("http://mail.google.com");
jetpack.tabs[ jetpack.tabs.length-1 ].focus();
});
jetpack.tabs 为浏览器窗口的标签对象,.open(url) 为新打开浏览器窗口标签的方法,.focus()为选中此标签为当前标签的方法。
OK,Firefox 的 Jetpack 扩展——Gmail 邮件提醒,经过简单的四步轻松完成。