Rhu*_*esh 3 browser tabs cross-browser local-storage angular
我正在努力在我关注的应用程序的所有打开的选项卡之间进行通信
但我没有收到事件
这是我的简单组件代码
import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'selector',
template: require('./app.component.html'),
styles: [require('./app.component.css')]
})
export class AppComponent {
constructor(){
// listen event
window.addEventListener('storage', this.message_receive);
// to trigger dummy events
setInterval(() => {
this.message_broadcast({a: 'rhushi'});
}, 1000);
}
public message_broadcast(message) {
localStorage.setItem('message', JSON.stringify(message));
}
public message_receive(ev) {
if (ev.key === 'message') {
let message = JSON.parse(ev.newValue);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在这里犯了任何错误,请纠正我
仅当其他选项卡中的值发生更改storage时才会触发该事件。localStorage
在上面的代码中,您每次广播相同的 json 意味着中的值localStorage不会改变。仅当存储中发生值更改时才会触发存储事件。尝试发送不同的值。
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |