Как отключить отображение предупреждения JavaScript после нажатия ОК - PullRequest
3 голосов
/ 30 апреля 2009

Я хочу показать предупреждение, если у меня есть что-то в моем почтовом ящике на Facebook. Я думаю, что это легко сделать с помощью пользовательских скриптов ... это то, что у меня есть (спасибо парням на форумах userscripts ):

document.addEventListener("DOMNodeInserted", function() {
  var count;
  if ((count=parseInt(document.getElementById("fb_menu_inbox_unread_count").textContent)) > 0)
  alert("You have "+count+" new message"+(count==1 ? "" : "s")+".");
}, true);

Это прекрасно работает, за исключением того, что сообщение застревает в цикле после нажатия «ОК» и продолжает появляться. Есть ли способ остановить сообщение после того, как я нажму "Отключить предупреждение"?

Ответы [ 2 ]

3 голосов
/ 30 апреля 2009

Добавьте переменную, которая отслеживает, сколько сообщений было последним предупреждением, и не показывает, не изменилась ли эта переменная.

Что-то вроде:

document.addEventListener(
  "DOMNodeInserted", 
  function() { 
    var count = parseInt(document.getElementById("fb_menu_inbox_unread_count").textContent);
    if (count > 0 && count != lastCount) {
      alert("You have "+count+" new message"+(count==1 ? "" : "s")+"."); }, true);
    }
    lastCount = count;  // Remember count to avoid continuous alerts.

Кроме того, я бы не стал писать код целиком, как вы делали в своем первоначальном посте. Это затрудняет чтение и изменение в случае необходимости.

0 голосов
/ 30 апреля 2009

Установите пользовательский файл cookie, используя document.cookie, чтобы сохранить счетчик, а затем регулярно проверяйте

...