跨业面通信的三种方式

本文介绍了三种JavaScript在网页间进行通信的方法:利用本地localStorage实现缓存通知,使用BroadcastChannel进行同源页面间的广播通信,以及通过window.postMessage实现在不同源页面之间的通信。
摘要由CSDN通过智能技术生成

方式一:

  利用本地缓存的方式

//需要发送消息的时候
localStorage.setItem('updataCatalogTask',true)

//然后在你需要接受消息的页面添加监听
      window.addEventListener('storage', (event) => {
        console.log(event,'触发index');
        if (event.key == 'updataCatalogTask' && event.newValue == 'true') {
            //dosomething
        }
      })

方式二:广播通信

//需要发送消息的时候
const channel = new BroadcastChannel('updataCatalogTask') 



channel.postMessage('updataCatalogTask')

//然后在你需要接受消息的页面添加监听
      const channel = new BroadcastChannel('updataCatalogTask')
      channel.addEventListener('message',(event)=>{
         console.log(event,'跨业面通信!!!')
      })

前面两个必须同源

方式三:可以不同源

//需要发送消息的时候
window.opener.postMessage('updataCatalogTask')

//然后在你需要接受消息的页面添加监听
      window.addEventListener('message',(event)=>{
        console.log(event,'跨业面通信!!!')
      })

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值