第三步:设置定时更新数据
我们设置每 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 邮件提醒,经过简单的四步轻松完成。
全部代码如下:
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"); } }); } jetpack.statusBar.append({ html: ''<img src="http://mail.google.com/mail/images/favicon.ico"/><span id="count"></span>'', //Gmail邮件图标和未读新邮件数 width: 40, //状态栏上的宽度为40,预留3位数的宽度 onReady: function(widget) { $("#count", widget).css({ //给未读新邮件数添加样式 cursor: "pointer", paddingLeft:"4px", fontFamily: "Tahoma, Arial, sans-serif", verticalAlign: "top", fontSize: "10px", lineHeight:"18px", }); $(widget).click(function() { //设置点击扩展后的链接窗口 jetpack.tabs.open("http://mail.google.com"); jetpack.tabs[ jetpack.tabs.length-1 ].focus(); }); update(widget); setInterval( function() {update(widget) }, 60*1000 ); } });
|