找回密码
 立即注册

QQ登录

只需一步,快速开始

二麻子

中级会员

5

主题

375

帖子

768

积分

中级会员

积分
768

悬赏达人

二麻子
中级会员   /  发表于:2024-11-7 14:53  /   查看:470  /  回复:8
情境

存在这么一种情况,标签页使用母版页,标签页内的页面也使用母版页。此时想让标签内的页面给标签页的母版页传递一个消息。

嵌套.png590078124.png

解决办法
BroadcastChannel介绍
BroadcastChannel 是一种 Web API,允许同一来源的不同浏览上下文(如标签页、iframe 或 Web worker)之间进行消息传递。这种机制使得在同一站点的不同页面之间同步数据变得非常简单和高效。
特性
• 同源策略:BroadcastChannel 只允许同一来源的页面之间进行通信。
• 实时通信:消息传递是即时的,没有显著延迟。
• 简洁易用:API 简单直观,易于上手。
  使用场景
• 多标签页同步:用户在一个标签页中进行的操作可以实时同步到其他标签页。
• 跨 iframe 通信:在不同的 iframe 之间传递消息,无需通过父页面中转。
• Web worker 通信:在主线程和多个 Web worker 之间实现高效通信。
  1. 原文链接:https://blog.csdn.net/qq_41292756/article/details/140458313
复制代码
广播频道插件

基于
BroadcastChannel开发了一组前端命令来实现我想要的效果。其实在最开始只是复制的JS代码直接以JavaScript命令的方式调用。

image.png887640075.png

广播频道在关闭页面后就会被销毁,一般不用手动销毁。此外广播频道被创建在一个集合中,当涉及到创建的时候都会判断一下,防止浪费。需要注意的是不要传输重量级数据,会导致性能开销过大。最后说明一点,
BroadcastChannel 设计用于解决在不同页面上下文之间(如标签页或窗口之间)的消息通信问题,无法在同一页面的同一个执行上下文中生效。

image.png146257933.png


14-34-47.gif591014709.png

注意这个插件没有经过严谨的测试,使用带来的后果本人概不负责。

MyPlugin_1104.zip (9.3 KB, 下载次数: 8, 售价: 30 金币)

评分

参与人数 3金币 +666 满意度 +10 收起 理由
amtath + 5
Simon.Sun + 666
妄想社成员 + 5

查看全部评分

8 个回复

倒序浏览
1525755450
中级会员   /  发表于:2024-11-8 14:05:41
沙发
回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-11-15 21:45:37
板凳
牛逼
回复 使用道具 举报
lh123活字格认证
银牌会员   /  发表于:2024-11-16 19:45:01
地板
这个好。大神C人物。
回复 使用道具 举报
追风
中级会员   /  发表于:2024-11-25 10:02:41
5#
插个眼,学习一下
回复 使用道具 举报
ZDYW悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2024-11-26 08:50:55
6#
学习                                             
回复 使用道具 举报
中力工贸
金牌服务用户   /  发表于:2024-11-26 10:39:33
7#
回复 使用道具 举报
妄想社成员活字格认证
银牌会员   /  发表于:2024-12-2 16:07:13
8#
感谢,项目中用到了
回复 使用道具 举报
二麻子
中级会员   /  发表于:2024-12-2 16:31:46
9#
妄想社成员 发表于 2024-12-2 16:07
感谢,项目中用到了

客气客气,我这边开发用的网页模版貌似就是大佬的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部