大多数Windows程序都有桌面提醒(Popup)功能,如Msn Messenger,Outlook2003,FoxMail,SharpReader等,对用户来说可以非常的方便最新的信息。

在Web中借用IE5.5+的Popup,也可以实现类似的功能,在CnForums1.2中新增了一种特性就是类似于Outlook2003一样,当有新帖子/私人留言时就有Popup提示,如图:
现在就技术问题介绍一下:

一,什么是Popup

在IE5.5+中开始支持的Popup窗口有很多很特别的特性:

  • Popup窗口可以超出浏览器窗口区域;
  • 可以不用担心被下拉框、flash、Iframe等这些东西遮挡;
  • 即时窗口没有焦点,Popup窗口也可以弹出并显示
  • 一个Popup窗口打开后,当在它的区域以外点击或者另一个Popup窗口被打开时都会自动关闭;
  • Popup窗口是没有焦点的;
  • 用户不能改变Popup窗口大小;
  • Popup窗口中的内容是不能被选择的;
  • ......

只是Web下的Popup比起Windows中的Popup还是弱一些,但是已经够用了。Msdn上对Popup有非常详细的介绍“Using the Popup Object (Internet Explorer - DHTML) ”

二,怎么创建一个Popup

Msdn上的示例代码:

// 创建Popup对象 var oPopup = window.createPopup(); // Popup对象和Window对象一样,里面包含了一个完整的HTML文档 var oPopupBody = oPopup.document.body; // 在Body中插入HTML oPopupBody.innerHTML = "Display some <B>HTML</B> here."; // 设置显示的位置、大小、参照物 oPopup.show(100, 100, 200, 50, document.body);

三,Popup的显示

多个Popup不能共存(Popup中创建Popup除外),所以web中的Popup不方便像Msn Messenger的Popup提示那样“爬楼梯”,所以最简单有效的方法就是像Outlook2003的Popup一样,逐个Popup提醒。
(参考WebMessenger的实现)用Js建个队列,将需要Popup提示的内容都放在队列中,用一个定时器,定时从队列中取一个Popup,每个Popup显示7秒。

四,怎么知道有新帖子

在Web程序中,只能通过“拉”的技术,即定时向服务器发送请求——通过定时刷新或者是xmlhttp的Get。
我们需要有个时间戳来记录最后请求时间,这样就好根据这个时间戳来获取时间戳之后的帖子。
如果每次根据时间戳来获取最新帖子,服务器负荷比较大,因为并不是每次请求都有新帖子的,优化一下,再给每个在线用户设置有无新帖子、有无新留言的状态位,当发表新帖子后更新每个人的“有无新帖”状态位。这样每次请求时先判断有没有新帖子,如果有新帖子,才获取所有帖子的标题和内容简要。

五,具体实现

客户端代码:http://webuc.net/MyProject/Popup/popup.htm
http://webuc.net/MyProject/Popup/popup.rar

和论坛程序的结合:
demo: http://bbs.openlab.net.cn (登录后有新帖子即提示(IE5.5+))
http://bbs.openlab.net.cn/PostAttachment.aspx?PostID=376725

Web的桌面提醒(Popup)相关推荐

  1. popup java_Web的桌面提醒(Popup)

    大多数Windows程序都有桌面提醒(Popup)功能,如MsnMessenger,Outlook网络 大多数Windows程序都有桌面提醒(Popup)功能,如Msn Messenger,Outlo ...

  2. web实现消息推送及桌面提醒

    2019独角兽企业重金招聘Python工程师标准>>> 就类似我们之前描述的,来一个 HTML5 提醒面板,再放一段语音.这个就有些类似12306 的抢票了. 还是先看下我们的效果图 ...

  3. html5 桌面提醒参数,html5 桌面提醒:Notifycations应用介绍

    HTML5中的桌面提醒(web notifications)可以在当前页面窗口弹出一个消息框,这个消息框是跨 Tab 窗口的,这在用户打开多个 tab 浏览网页时,提醒比较方便,容易让用户看到.目前只 ...

  4. HTML5开发 桌面提醒功能

    桌面提醒的介绍 桌面通知功能能够让浏览器即使是最小化状态也能将消息通知给用户.这和WebIM是最为天然的结合.不过,目前支持Desktop Notification功能的浏览器只有Chrome5+. ...

  5. 谷歌chrome浏览器桌面提醒 webkitNotifications

    原创: //点击时开启提醒 $(".message_alert").toggle(function(){ $(".message_alert_tip").htm ...

  6. web远程桌面客户端_您所说的内容:桌面与基于Web的电子邮件客户端

    web远程桌面客户端 We clearly tapped into a subject you all have a strong opinion about with this week's Ask ...

  7. 简易实用的Web Notification桌面通知

    Web Notification桌面通知 项目需要,要利用google的notification实现新消息桌面提醒功能,之前研究了一下H5的Web Notification发现很简单,项目上线好久忘截 ...

  8. 怎么设置桌面提醒任务,好用的桌面便签提醒工具

    上班族每天的工作任务很多,全凭脑子记忆恐怕是很费劲的.如果有一个桌面提醒任务软件,可以记录下当天的工作任务,并设置指定时间,提醒自己在特定时间做事.有人喜欢用便签来设置任务提醒,那么好用的桌面便签有哪 ...

  9. html5 桌面提醒 例子,HTML5 Notification(桌面提醒)功能使用实例

    一.HTML5 Notification 简介HTML5 Notification ,即桌面通知.目前浏览器依然是一个严格的沙盒工作模式,这种模式把浏览器和桌面的通信隔离开.Notification可 ...

最新文章

  1. subprocess.Popen 运行windows命令出现“句柄无效”报错的解决方法
  2. python中修改列表元素的方法
  3. JavaScript技巧
  4. 异步编程的 async/await
  5. html图片分四面切割播,CSS3切割轮播图
  6. oui unknown中的oui是什么?
  7. 秒传 php,网站图片上传可以实现秒传功能吗?
  8. SAP License:雾里看花系列——换种思维来看待SAP
  9. JS与PHP向函数传递可变参数的区别
  10. 查看Linux下端口被哪个程序占用
  11. 这是一份简易的ACM模板
  12. C++之printf格式
  13. 数位 dp 最低位最高位之差绝对值大于2_面试必备——手撕代码(2)“买卖股票的最佳时机”...
  14. 白帽子讲web安全读后感
  15. 模拟电话簿提取名字显示
  16. 【cpu如何超频及cpu超频作用】
  17. 算法训练Day25 | LeetCode216. 组合总和III(和77.组合很像!);LeetCode17. 电话号码的字母组合(不同集合中组合)
  18. word中硬回车(enter)与软回车(shift+enter)
  19. 积极心态,助力人生成功
  20. 【IoT】STM32 分散加载文件 .sct 解析

热门文章

  1. Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)
  2. MPlayer编译步骤
  3. 【TensorFlow2.0】(7) 张量排序、填充、复制、限幅、坐标选择
  4. 数字拆分问题算法回溯_回溯算法:求子集问题!
  5. Toronto-3D:用于城市道路语义分割的大规模移动激光雷达数据集
  6. 剑指offer:面试题19. 正则表达式匹配
  7. iframe几种常用代码片段
  8. 删除单链表中的重复节点(c语言版本)
  9. Blender从头到尾创建一辆宝马轿车视频教程
  10. Data - 数据思维 - 上篇