如何在按下确定后停止显示javascript警报

时间:2009-04-29 21:55:35

标签: javascript facebook greasemonkey alert

如果我的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 个答案:

答案 0 :(得分: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.

另外,我会避免像你在原帖中所做的那样编写代码。如果需要,它会使阅读和更改变得更加困难。

答案 1 :(得分:0)

使用document.cookie设置自定义cookie以保存计数,然后进行常规检查