是否可以使用新的HTML5 API创建一个通道,以在同一域中的页面的两个实例(或两个不同的页面)之间但在两个不同的选项卡/窗口(同一台机器)之间发送消息?
例如,我有一个使用JavaScript单页应用程序的页面,当我在一个窗口中单击“注销”或登录时,在另一个窗口中获得了登录/注销。
没有websockets,有可能做到这一点吗?也许是WebRTC。我应该如何实施这样的事情?
由于@NiettheDarkAbsol指示您可以使用localstorage在同一浏览器中发送消息。这是简短的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);
};
};
与HTML
<input/>
<button>notif</button>
唯一的限制是消息必须不同于先前的消息。如果您发送请求的ID(例如在JSON-RPC中),则可以对其进行修复。
更新:这是我为此专门制作的简单库:https : //github.com/jcubic/sysend.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句