突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
使用该方法需要注意的地方是,事件注册的事件点应该尽可能的靠前,如果注册太晚则当用户打开页面后再离开就会很容易出现状态的误判。 3. 当用户使用多Tab开启多个存在IM的页面时,只要有一个页面处于Focus状态将不出现通知; 多页面间的状态共享可以通过本地存储来实现: • 浏览器窗口Focus时修改本地存储中指定key的值为"focus" • 浏览器窗口Blur时修改本地存储中指定key的值为"blur"。 需要注意的是,Chrome下从一个Tab切换到另一个Tab时,Blur有可能比Focus后写入存储中,因此修改Focus状态时需要异步处理。 复制代码 代码如下: 实现以上状态共享后,新的消息到达后,只需要查看本地存储中’kxchat_focus_win_state’的值是否为blur,如果为blur才弹出窗口。 4. 如何让用户点击通知浮动层即可定位到具体的聊天窗口 通知窗口支持onclick等事件响应,而响应函数中的作用范围属于创建该窗口的页面。如下代码: 复制代码 代码如下: 在onclick的响应函数中访问的window对象即属于当前创建页面,因此可以很方便的与当前页面进行交互。以上代码便实现了点击弹出窗口会跳转到对应的浏览器窗口和打开IM窗口。 :页面中的相关事件很多时候具有不确定的时序性,所以我们的代码尽量不要假设某些事件触发的顺序是一定的。比如上面的blur和focus事件 实用参考: (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |