2016-03-05 68 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

相關問題