Как остановить предупреждение яваскрипта от показа после нажатия ОК

голоса
3

Я хочу , чтобы показать предупреждение , если у меня есть что - то в моей Facebook почтовый ящик. Я думаю , что это можно легко сделать с помощью userscripts ... это то , что я до сих пор (спасибо ребятам на самых 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);

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

Задан 29/04/2009 в 22:55
источник пользователем
На других языках...                            


2 ответов

голоса
3

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

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

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.

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

Ответил 29/04/2009 в 22:59
источник пользователем

голоса
0

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

Ответил 29/04/2009 в 23:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more