2016-03-05 64 views
0

completed我有message的警报;每个浏览器选项卡的Socket.io socket.on触发器

socket.on("test-channel:completed", function (message) { 
     alert(message); 
    }); 

问题是,它触发我的网站上浏览器中的每个选项卡。例如:如果我的网站上有4个标签,我会收到4条警报。

如何才能使警报触发器只有一次?

+0

如何只显示'警报()'如果当前选项卡具有焦点,是可见的?除此之外,您将不得不以某种方式使用多窗口通信(通过localStorage或消息传递)来指示某个其他选项卡已显示该消息。我也希望你实际上并没有在生产代码中使用'alert()',因为他们的模式会在浏览器上搞砸。 – jfriend00

+0

@ jfriend00'alert()'就是一个例子。你的想法可以奏效。你有任何答案要提交? – Wistar

回答

-1

你可以这样做。 您可以使用localStorage

socket.on("test-channel:completed", function (message) { 

     if(localStorage.getItem('alert')){ 

      //do not alert 
     }else{ 

      localStorage.setItem('alert',true); 
     } 
    }); 
+0

它不起作用。它会在所有选项卡上发出警报,然后设置为true。 – Wistar

相关问题