【发布时间】:2017-11-21 13:40:02
【问题描述】:
在 Chrome 和 Firefox
目标是将消息发送到浏览器中的另一个选项卡。
当填写文本输入并单击发送按钮时,浏览器中的另一个选项卡应该在浏览器控制台中写入消息。
html 文件:
<script type="text/javascript">
const myWorker = new SharedWorker( "sharedWorkerChat.js" );
const port = myWorker.port;
port.addEventListener( "message", function( e ) {
console.log( e.data );
}, false );
port.start();
function postMessage() {
const value = document.getElementById( "input" ).value;
console.log( value );
port.postMessage( value );
}
</script>
<input type="text" id="input" />
<button onclick="postMessage()"> Send </button>
sharedWorkerChat.js
var m;
var instances = [];
self.addEventListener( "connect", function ( e ) {
var port = e.ports[ 0 ];
instancias.push( port );
port.addEventListener( "message", function ( message ) {
m = message.data;
instances.forEach( function( p ) {
p.postMessage( m );
});
}, false );
port.start();
}, false);
【问题讨论】:
标签: firefox shared-worker