本文共 979 字,大约阅读时间需要 3 分钟。
var jack = {};var listenerMap = {};// 这里传事件名称,方法名称function addEventListener(args) { listenerMap[args.name] = args.callBackName;}// 监听管理者function listenerManager() { for(var name in listenerMap) { var message = localStorage.getItem(name); if(message) { var func = eval(listenerMap[name]); func(message); localStorage.removeItem(name); } }}//添加一条消息function addMessage(name,message) { localStorage.setItem(name,message)}$(function() { //每一秒执行一次 setInterval("listenerManager()", 1000);})jack.addEventListener = addEventListener;jack.addMessage = addMessage;
在需要接收消息的页面
jack.addEventListener({ name:'onLoginSuccess', callBackName:'onLoginSuccess' });
//当登录成功的时候function onLoginSuccess(userInfo){ userInfo = JSON.parse(userInfo); storeId = userInfo.storeId; poll();}
在 推送消息的页面
jack.addMessage('onLoginSuccess',JSON.stringify(data));注意消息只能是字符串类型,不可以是json对象,如果是json对象
此方法在cef 上测试通过,在chrome浏览器中不见得好使,因为如果你访问A窗口那么B窗口的代码不会执行,当然你到了B窗口的时候js继续执行就可以收到提示了。
如果觉得这篇文章帮助到你,给作者打赏点咖啡钱吧。