Firefox 的 Jetpack 扩展案例分析:Gmail 邮件提醒(3)
作者:blank 来源:怿飞博客 发布时间:2009-10-15 12:41:00
全部代码如下:
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 );
}
});
测试Demo:http://www.planabc.net/lab/jetpack/gmail/
对于 Jetpack 详细的 API,可以阅读 about:jetpack 页面的 API Reference 标签部分。
案例源码来自:https://jetpack.mozillalabs.com/demos/gmail-checker.js


猜你喜欢
- 全局,动态,默认值-1表示自动调整大小,公式:8 + (max_connections / 100)。最小值0,最大值16384,查看当前:
- 1、登录接口登录后返回对应token封装:import jsonimport requestsfrom util.operation_jso
- 相信大家都知道html和css,知道html结构和css表现分离,知道html语义化,这些都是这几年的热门关键字。语义化的html在国内也是
- 最近运维上需要在测试环境调用http的post请求,实现自动化日切,我看了下我会的编程,也就python能符合我的要求,且简单好操作。但是在
- 本文参考文章,出于学习目的,写本文。开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息、请求的url、测试数据等,需要将这些数
- python2中的unicode()函数在python3中会报错:NameError: name 'unicode' is
- 学在前面从本篇博客起,我们将实际完成几个小案例,第一个就是银行卡号识别,预计本案例将写 5 篇左右的博客才可以完成,一起加油吧。本文的目标是
- 问题:我想每日从数据库里导出一些数据,内容基本上都是一样的,只是时间不同,比如导出一张表wjzcreate table wjz(id int
- 一、什么是函数装饰器1.函数装饰器是Python提供的一种增强函数功能的标记函数;2.装饰器是可调用的函数对象,其参数是另一个函数(被装饰的
- Function Comma(str)If Not(IsNumeric(str)) Or 
- 1、jieba库基本介绍(1)、jieba库概述jieba是优秀的中文分词第三方库- 中文文本需要通过分词获得单个的词语- jieba是优秀
- 项目需求:将kafka解析来的日志获取到数据库的变更记录,按照订单的级别和订单明细级别写入数据库,一条订单的所有信息包括各种维度信息均保存在
- 除了IE浏览器,其他所有主流的浏览器均支持原生的 Base64 编码:btoa(text) – base64 encodes text. a
- 表单在提交前我们通常会用客户端JS对其内容进行验证,通常都是写一个函数然后在onsumbit事件中调用,如下:<html><
- 要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似
- Tkinter是python的GUI模块,内含各种窗口控件,利用其中messagbox可以制作各种信息弹出窗口。以下是制作信息提示框的代码:
- 前言我们将利用 Beautiful Soup 模块的搜索功能,根据标签名称、标签属性、文档文本和正则表达式来搜索。搜索方法Beautiful
- 最近一段时间都在学django,现在的网站基本都要使用到富文本编辑器,今天就记录下使用django的管理后台的一个富文本编辑器的第三方库 D
- 通过ip2region解析IP获得地域信息目标,从给的读取给的ip地址文件解析出ip地域名并输出CSV文件,我选用的是开源ip2region
- SecureFile功能是oracle 11g中对大对象(LOB)存储格式的完全重新设计实现,原来的LOB存储格式现在通称为BASIXFIL