2009-04-29 4 views
3

Je veux afficher une alerte si j'ai quelque chose dans ma boîte de réception Facebook. Je pense qu'il peut être facilement accompli en utilisant userscripts ... c'est ce que j'ai jusqu'à présent (grâce aux gars aux forums userscripts):Comment arrêter l'affichage de l'alerte javascript après avoir appuyé sur OK

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

Cela fonctionne très bien, sauf le message est bloqué dans une boucle après cliquant sur "OK", et continue à apparaître. Existe-t-il un moyen d'arrêter le message après avoir cliqué sur Annuler l'alerte?

+0

désolé mais je em un Compleet Noob quand on parle de javascript ... donc s'il vous plaît poster un exemple de code ... ps : la solution "Ben S" semble fonctionner ... mais de toute façon c'est comme ça que je peux le faire ... –

+0

Je l'ai mis à jour avec le fixateur indiqué. Faites-moi savoir si cela fonctionne maintenant. –

Répondre

3

Ajouter une variable qui garde la trace du nombre de messages de dernière alerte, et ne pas afficher si cette variable n'a pas changé.

Quelque chose comme:

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. 

Aussi, j'éviterait le code d'écriture tout en un comme, comme vous l'avez fait dans votre message original. Cela rend plus difficile la lecture et la modification si nécessaire.

+0

Ne devrait pas lastCount = compter; être en dehors de la déclaration if? après 1 message, l'alerte ne se produirait pas avant le 2ème message s'il lisait le message. – oneporter

+0

non, il a envoyé du travail, et je ne comprends pas pourquoi .... parce que cela devrait fonctionner ... –

0

Initie un cookie personnalisé à l'aide document.cookie pour sauver le compte, alors faites vos contrôles réguliers

Questions connexes