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继续执行就可以收到提示了。
如果觉得这篇文章帮助到你,给作者打赏点咖啡钱吧。