浏览器页面之间推送消息 A窗口给B窗口推送消息 用于cef多个browser之间通信

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继续执行就可以收到提示了。


如果觉得这篇文章帮助到你,给作者打赏点咖啡钱吧。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值