Firefox 的 Jetpack 扩展案例分析:Gmail 邮件提醒
作者:blank 来源:怿飞博客 时间:2009-10-15 12:41:00
Gtalk 软件的最下方有个很好又很实用的功能,就是 Gmail 邮件提醒功能。会定时更新你 Gmail 中未读新邮件的数量。
试想如果我们将此功能移植到 Firefox 上一定有趣!
第一步,在状态栏中显示图标和数据。
通过 《如何创建 Firefox 的 Jetpack 扩展》 这篇文章,我们可以轻易的创建:
jetpack.statusBar.append({
html: '<img src="http://mail.google.com/mail/images/favicon.ico"/><span id="count"></span>', //Gmail邮件图标和未读新邮件数
width: 55, //状态栏上的宽度为55
onReady: function(widget) {
$("#count", widget).css({ //给未读新邮件数添加样式
cursor: "pointer",
paddingLeft:"4px",
fontFamily: "Tahoma, Arial, sans-serif",
verticalAlign: "top",
fontSize: "10px",
lineHeight:"18px",
});
}
});
第二步,获取 Gmail 的数据,更新未读新邮件数。
可以通过 Gmail 邮件的 Feed 获得(需登录):https://mail.google.com/mail/feed/atom
Feed 源码中的 fullcount 标签是用来记录当前的未读新邮件数。
OK,首先数据源有了。接着,我们使用再熟悉不过的 Ajax 技术,获取到数据并赋给指定的元素。
function update(widget) {
var widget = $(widget);
$.get("https://mail.google.com/mail/feed/atom", function(xml) {
var el = $(xml).find("fullcount"); // 记录未读新邮件数的节点
if(el){
var newcount = parseInt(el.get(0).textContent);
widget.find("#count").text(newcount); //赋给指定的元素
} else { //如果未登录,显示“Login”
widget.find("#count").text( "Login" );
}
});
}