js BroadcastChannel 页面消息传输

通过创建BroadcastChannel对象,可以在不同的浏览器标签页或窗口之间进行实时的数据传递。在发送页面上,创建channel并调用postMessage方法发送数据;在接收页面,同样创建channel并监听onmessage事件来接收和处理数据。
摘要由CSDN通过智能技术生成

创建 BroadcastChannel

想传数据的页面

   var channel =  new BroadcastChannel("mul");
       channel.postMessage({
           value: "无敌"//消息内容
       })

接收的页面

var channel =   new BroadcastChannel("mul");
      channel.onmessage = function (e) {
          console.log(e.data)//接收的消息
      }
在不同页面之间传输数据,有多种方法可以实现。以下是其中几种常见的方法: 1. 使用localStorage或sessionStorage localStorage和sessionStorage都是H5提供的本地存储API,可以在浏览器中存储键值对数据。它们的区别在于localStorage数据会一直保存,直到手动清除,而sessionStorage数据只在当前会话中有效,关闭浏览器窗口后会被清除。因此,如果需要在不同页面之间共享数据,可以使用localStorage。 假设在页面A中需要传输数据到页面B,可以在页面A中使用以下代码存储数据: ```javascript localStorage.setItem('data', 'hello world'); ``` 在页面B中获取数据: ```javascript var data = localStorage.getItem('data'); ``` 需要注意的是,如果在同一浏览器中打开的多个窗口都需要访问同一个localStorage,那么需要注意不同窗口中访问localStorage时的同步问题。 2. 使用URL参数传递数据 在URL中传递参数是一种常用的传输数据的方式。在页面A中,可以通过URL参数的形式传递数据到页面B: ```javascript var data = 'hello world'; window.open('pageB.html?data=' + encodeURIComponent(data)); ``` 在页面B中获取数据: ```javascript var data = decodeURIComponent(location.search.substring(1).split('=')[1]); ``` 需要注意的是,URL参数传递的数据大小有限制,不同浏览器的限制大小也不同,因此在传输数据时需要注意大小限制。 3. 使用cookie 使用cookie也可以在不同页面之间传输数据。在页面A中,可以设置cookie: ```javascript document.cookie = 'data=hello world'; ``` 在页面B中获取数据: ```javascript var data = document.cookie.split('; ').find(row => row.startsWith('data=')).split('=')[1]; ``` 需要注意的是,cookie也有大小限制,而且cookie的生命周期可以自行设置,需要在存储时设置cookie的过期时间。此外,cookie还需要注意跨域问题,只有在同一域名下才能访问同一cookie。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值