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

Смежные вопросы