新闻中心

跨标签页通信J*aScript_Broadcast Channel

2025-11-26
浏览次数:
返回列表
Broadcast Channel API 是浏览器提供的同源跨标签页通信方案,通过创建命名频道实现消息广播;支持 postMessage 发送消息和 onmessage 或 addEventListener 接收消息,适用于登录状态同步、数据共享等场景;需注意仅同源通信、不保证消息顺序与送达、需手动关闭通道,且 IE 不支持、老版 Safari 有限兼容。

跨标签页通信javascript_broadcast channel

Broadcast Channel API 是浏览器提供的一种简单直接的跨标签页通信方式。它允许你在同一个源(origin)下的不同浏览器标签页、窗口或 iframe 之间发送和接收消息。相比其他方法如 localStorage + storage 事件或 postMessage,Broadcast Channel 更直观、语义更清晰。

什么是 Broadcast Channel

Broadcast Channel 是一个浏览器 API,用于在同源的不同执行上下文中广播消息。只要页面属于同一个协议、域名和端口,它们就可以通过频道名称建立通信。

每个频道是一个命名的通道,任何加入该频道的页面都可以发送和接收消息。

基本使用方法

创建一个 BroadcastChannel 实例非常简单,只需要传入一个频道名称:

const channel = new BroadcastChannel('my-channel');

之后就可以通过 postMessage 发送消息,通过 onmessage 接收消息:

// 发送消息

channel.postMessage('Hello from tab 1!');

// 接收消息

channel.onmessage = function(event) {

  console.log('收到消息:', event.data);

};

你也可以使用 addEventListener 的方式监听消息,这种方式更灵活:

channel.addEventListener('message', function(event) {

  console.log('接收到:', event.data);

});

易想商务网 易想商务网

YxB2B商务网是易想网络旗下的门户型B2B行业网站系统,采用先进的标签技术和静态生成技术,通过网站后台管理轻松实现网站前台多种风格和会员网站多风格,让每一个只要懂得简单网页制作常识的网友,轻松制作出精美专业的的行业商务网站系统。系统高速、稳定、安全,完全仿阿里巴巴功能设计,有供应信息、求购信息、产品库、公司库、专项商机、行业信息、展会服务、人才市场、会员助手、网商博客、商友论坛、全方位搜索等栏目

易想商务网 0 查看详情 易想商务网

实际应用场景

这种通信方式特别适合以下场景:

  • 用户在一个标签页登录后,通知其他标签页同步登录状态
  • 多个标签页共享某个配置或数据更新
  • 防止重复操作,比如在一个标签页中启动长时间任务后,通知其他页面禁用按钮
  • 调试信息广播:开发时让所有标签页输出日志

例如,当用户在标签页 A 中退出登录,你可以这样通知其他页面:

const authChannel = new BroadcastChannel('auth');

authChannel.postMessage({ type: 'logout' });

在其他页面中监听:

authChannel.onmessage = function(event) {

  if (event.data.type === 'logout') {

    // 清除本地状态,跳转到登录页

    clearAuth();

    window.location.href = '/login';

  }

};

注意事项与兼容性

虽然 Broadcast Channel 使用方便,但仍有几点需要注意:

  • 仅限同源页面通信,不能跨域
  • 消息只传递给已打开且处于活动状态的页面
  • 不保证消息顺序(虽然通常有序),也不保证送达(极端情况可能丢失)
  • 需要手动调用 close() 关闭通道释放资源 channel.close();
  • 主流现代浏览器都支持,但 IE 不支持,老版本 Safari 支持有限

如果需要兼容旧浏览器,可以结合 localStorage 监听作为降级方案。

基本上就这些。Broadcast Channel 简单有效,适合大多数跨标签通信需求。

以上就是跨标签页通信J*aScript_Broadcast Channel的详细内容,更多请关注其它相关文章!


# 如何实现  # 金华网站建设公司代理  # 网站优化的原则有哪些呢  # 支付宝怎么做营销推广  # 美妆产品seo网站  # 山东网站建设路美食  # 神马seo排名关键词点击  # 河北seo查询哪个好用  # 江苏达人种草营销推广平台  # 农业公司网站怎么推广  # 济南网站推广服务商电话  # 按需  # 点对点  # 就可以  # javascript  # 如何用  # 如何使用  # 不支持  # 发送消息  # 是一个  # 商务网  # 跨域  # win  # safari  # 端口  # 浏览器  # go  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Golang如何优雅处理error_Golang error处理最佳实践总结  Typer应用中动态命令行参数的解析与处理  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  狙击外星人小游戏开始_狙击外星人小游戏立即开始  b站怎么删除评论_b站评论管理与删除操作  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  BetterDiscord插件中安全更新用户简介的实践指南  CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整  C++如何解决segmentation fault_C++段错误调试与原因分析  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  漫蛙漫画网页端入口 漫蛙2官方正版漫画站点  Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法  在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析  微博网页版直接访问 微博网页版账号管理快速入口  网易大神账号申诉需要多久_网易大神账号申诉流程说明  如何使用Node.js csv 包按条件移除含空字段的CSV记录  在J*a中如何使用BigDecimal进行高精度计算_BigDecimal类应用指南  AO3最新可访问网址 Archive of Our Own官方在线入口  Python实现多节点属性重叠度分析教程  优化Django表单:提交验证失败后保留用户输入  Pandas DataFrame 多条件优先级排序与排名  PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题  QQ邮箱网页版入口 QQ邮箱官方邮箱登录通道  在WordPress中通过REST API获取BasicAuth保护的远程文章  使用Python高效删除Word宏并转换DOCM为DOCX格式  铁路12306的积分有效期是多久_铁路12306积分有效期说明  谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  反效果?《战地6》免费试玩开启后玩家数不升反降  Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  如何提高微信支付的安全性_微信支付安全防护与设置建议  向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程  怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  Tabulator表格中精确实现日期时间排序的指南  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  QQ官网正版登录链接 QQ在线登录入口最新  Python getattr() 异常处理深度解析:避免程序意外退出  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  AO3官方在线访问地址 Archive of Our Own最新镜像合集  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  深入理解J*aScript中的B样条曲线与节点向量生成  Go语言中JSON数据解码与字段访问指南  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置 

搜索