jcu*_*bic 1 html javascript browser
是否可以使用新的 HTML5 API 创建一个通道,用于在同一域中但在两个不同选项卡/窗口(同一台计算机)中的两个页面实例(或两个不同页面)之间发送消息?
例如,我有一个带有 JavaScript 单页应用程序的页面,当我在一个窗口中单击“注销”或“登录”时,我会在另一个窗口上登录/注销。
没有网络套接字可以做到这一点吗?也许是 WebRTC。我应该如何实现这样的事情?
正如@NiettheDarkAbsol 建议的那样,您可以使用本地存储在同一浏览器中发送消息。这是简短的 POC 代码(在 vanila JS 中)
window.onload = function() {
window.addEventListener('storage', storageEventHandler, false);
function storageEventHandler(e) {
console.log(localStorage.getItem(e.key));
}
var input = document.getElementsByTagName('input')[0];
document.getElementsByTagName('button')[0].onclick = function() {
localStorage.setItem('name', input.value);
};
};
Run Code Online (Sandbox Code Playgroud)
与 HTML
<input/>
<button>notif</button>
Run Code Online (Sandbox Code Playgroud)
唯一的限制是该消息需要与之前的消息不同。如果您发送请求的 id(如 JSON-RPC),您可以修复它。
更新:这是我刚刚为此制作的简单库:https: //github.com/jcubic/sysend.js