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 邮件提醒,经过简单的四步轻松完成。

标签:Gtalk,firefox,Jetpack,插件,提醒
0
投稿

猜你喜欢

  • flask SQLAlchemy连接数据库及操作的实现

    2024-01-28 09:23:29
  • Tensorflow训练模型越来越慢的2种解决方案

    2021-06-04 20:55:53
  • 利用Seaborn绘制20个精美的pairplot图

    2023-08-15 20:09:15
  • Server.HTMLEncode让代码在页面里显示为源代码

    2023-11-24 13:40:28
  • Python自动化之定位方法大杀器xpath

    2023-11-22 05:08:57
  • Python使用jupyter notebook查看ipynb文件过程解析

    2021-07-25 20:26:30
  • 如何在Django配置文件里配置session链接

    2022-09-08 18:17:33
  • Python类装饰器实现方法详解

    2021-11-15 20:01:05
  • golang gorm的预加载及软删硬删的数据操作示例

    2024-04-25 13:18:34
  • javascript eval和JSON之间的联系

    2024-04-19 10:00:51
  • 一小时学会TensorFlow2之Fashion Mnist

    2023-01-27 12:08:16
  • 显示某日期所在星期的所有日期asp代码

    2008-06-01 16:05:00
  • Python生成一个迭代器的实操方法

    2022-05-08 09:34:32
  • asp之自动闭合HTML/ubb标签函数+简单注释

    2008-09-29 12:21:00
  • python重要函数eval多种用法解析

    2023-02-08 20:16:46
  • Python3调用微信企业号API发送文本消息代码示例

    2023-05-03 16:23:41
  • Python2.x中文乱码问题解决方法

    2023-09-20 14:35:35
  • golang coroutine 的等待与死锁用法

    2024-04-30 10:03:34
  • 详解利用Pandas求解两个DataFrame的差集,交集,并集

    2023-10-21 06:14:51
  • Python importlib动态导入模块实现代码

    2022-07-31 05:52:25
  • asp之家 网络编程 m.aspxhome.com