2009-04-29 3 views
3

Ich möchte eine Warnung anzeigen, wenn ich etwas in meinem Facebook-Posteingang habe. Ich denke, es ist leicht erreicht werden kann userscripts mit ... das ist, was ich bisher (Dank an die Jungs an den userscripts Foren):Wie man die JavaScript-Warnmeldung nach dem Drücken von ok stoppt

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); 

Dies funktioniert gut, außer der Nachricht in einer Schleife stecken bleibt nach Klicken Sie auf "OK" und erscheint immer wieder. Gibt es eine Möglichkeit, die Nachricht zu stoppen, nachdem ich auf "Warnung abbrechen" geklickt habe?

+0

leid, aber ich em ein compleet Noob, wenn man über Javascript sprechen ... so schreiben Sie bitte ein Codebeispiel ... ps : die "Ben S" lösung dosent scheint zu funktionieren ... aber thx sowieso, weil das ist die art und weise, dass ich es tun könnte ... –

+0

Ich aktualisierte es mit der fix oneporter wies darauf hin. Lass es mich wissen, wenn es jetzt funktioniert. –

Antwort

3

Fügen Sie eine Variable hinzu, die nachverfolgt, wie viele Nachrichten zuletzt angezeigt wurden, und zeigt nicht an, ob diese Variable nicht geändert wurde.

Etwas wie:

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. 

Außerdem würde ich das Schreiben von Code alle in einem wie vermeiden, wie Sie in Ihrem ursprünglichen Post tat. Es macht es schwieriger zu lesen und zu ändern, wenn es nötig ist.

+0

Sollte nicht lastCount = zählen; außerhalb der if-Aussage stehen? Nach 1 Nachricht wird die Warnung erst bei der zweiten Nachricht ausgelöst, wenn er die Nachricht gelesen hat. – oneporter

+0

nein, es sendet Arbeit, und ich verstehe nicht warum ... weil das funktionieren sollte ... –

0

ein eigenes Cookie gesetzt document.cookie mit der Zählung zu speichern, dann tun Sie Ihre regelmäßige Kontrollen

Verwandte Themen