javascript - 如何使用 JavaScript 查看现有打开的广播频道?
问题描述
HTML5 BroadcastChannel API是在选项卡/窗口之间发送数据的绝佳解决方案。
它们通过调用函数打开new BroadcastChannel(name)
和关闭。.close()
但是,它没有说明如何查看现有打开的广播频道。如果我动态创建 BroadcastChannels(不是使用固定的频道名称),查看当前打开的 BroadcastChannels 非常有用。
在Google 上搜索(“查看现有广播频道 javascript”)并查看前三个结果(1、2、3)都没有提供有关如何查看所有打开的广播频道的指示。
我试过查看BroadcastChannel
界面,但它没有提供任何.listOpenedChannels()
功能或任何类似的东西。
如何查看现有打开的广播频道?
解决方案
BroadcastChannel
对象存储为 的属性,window
因此您可以遍历所有窗口属性并查找对象类型“BroadcastChannel”。
MDN 有一个关于此的部分:
下Real-world usage
。
这是一个简化版本:
bc1 = new BroadcastChannel('test_channel1');
bc2 = new BroadcastChannel('test_channel2');
bc3 = new BroadcastChannel('test_channel3');
for (p in window) if (Object.prototype.toString.call(window[p]).slice(8,-1)=='BroadcastChannel') console.log(p);
推荐阅读
- c# - 是否可以向 Active Directory 中的所有登录用户发送桌面通知?
- java - 此 URL 不支持 HTTP 方法 POST,在 Servlet 中有 doPost 方法
- java - 如何连接两个 IntStream?
- javascript - 如何同时使用php和js过滤内容
- ckeditor - CKEditor 找不到 getData 函数
- apache-flink - 是否有可能知道哪些元素被从窗口中逐出?
- java - 如何使用 Java 模型映射器将具有惰性属性的实体转换为 DTO
- dsl - 如何在空手道中设置全局身份验证?
- android - FusedLocationProviderClient 有时会返回相同的位置
- c# - wpf 应用程序设置实际上是如何工作的?