javascript - 两个选项卡如何在浏览器内通信?

标签 javascript

<分区>

如何在没有任何服务器端支持的情况下准备一个通信 channel 以在同一浏览器中的多个打开的选项卡之间进行通信?

最佳答案

看看Window/postMessage .

您还可以使用 Window.localStorage 并注册一个 StorageEvent并从另一个选项卡对其使用react。
这是一篇有趣的读物:Using the Web Storage API ;

示例 使用 localStorageStorageEvent

将其放入 page1.html

<button>CLICK ME TO CHANGE "A" - "B"</button>
<script>
document.querySelector("button").addEventListener("click", function(){
  localStorage.ab = localStorage.ab ===  "A" ? "B" : "A";
});
</script>

并将其放入 page2.html

<script>
window.addEventListener("storage", function( StorageEvent ){
  console.log( StorageEvent );
  alert(StorageEvent.newValue);
});
</script>

关于javascript - 两个选项卡如何在浏览器内通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173864/

相关文章:

javascript - 删除数字的最后一位(不是字符串)

javascript - 如何在包含 iframe 或仅包含框架的 HTML 文档中查找选择

javascript - jQuery:将可点击事件分配给具有相似ID的多个div

javascript - 更改文本区域中唯一单词的样式/颜色?不是除法

javascript - 回调 spy 不会在流结束时被调用

javascript - 按回车键打开弹出窗口

javascript - 动态更改相对左上角的 div 位置

javascript - 无法在我的 create-react-app 中从 'redux-saga' 导入 createSagaMiddleware

javascript - JSON 对象和 JSON 文档有什么区别?

javascript - 使用 javascript 在 HTML 图像上显示图像