2010-11-15 15 views
0

Juste pour que tout le monde le sache, je suis relativement nouveau à JavaScript, (et j'ai essayé de faire des choses en JS pur plutôt qu'en utilisant jQuery, etc.). À un endroit où je me suis contracté, nous avons un serveur Exchange, j'utilise le client webmail. Pour l'empêcher de me chronométrer quand il n'y a aucune activité, j'ai commencé à mettre en place une extension Safari depuis que je pouvais injecter JS dans une page en utilisant un. Et j'ai pensé que ce serait un bon exercice puisque j'apprends JS à partir de zéro.Essayer de détecter les caractères pour déterminer si la page doit être rechargée ou non. (Safari Extension)

Eh bien, cette partie fonctionne, sauf lorsque vous répondez ou que vous envoyez un nouvel e-mail. J'ai donc essayé d'ajouter le deuxième bit de code pour l'empêcher, mais il est toujours actualisé. Je ne peux pas comprendre pourquoi. J'apprécierais toute aide! Je vais aussi devoir ajouter des règles pour savoir si je réponds ou si je réponds à tous, mais je pense que si je peux faire en sorte que cela fonctionne, je peux le faire.

Alors, voici mon code:

if (location.host === "mail.exmx.net") { 
    /* The Domain is https://mail.exmx.net/owa/?ae=Folder&t=IPF.Note */ 

    var timer = setTimeout(function() { 
     location.reload(); 
    }, 30000 /* 30 Seconds used just as a test to speed up waiting time*/); 
} 

else (location.href.indexOf("?ae=Item&t=IPM.Note&a=New") != -1) { 
    /* my attempt at using a static part of the string that's in the location bar when a new email is created */ 
    clearTimeout(timer); 
} 
+0

Où est la deuxième partie, est que l'instruction else? Vous pouvez attraper des frappes et des gestes de la souris sur le document entier et redémarrer le délai (effacer et créer à nouveau) – Mikhail

+0

ouais, il est. Comme je l'ai dit, je dirais un peu plus que le niveau débutant probablement, donc je manque toujours/oublie les choses dans la syntaxe ... –

Répondre

1

Votre code est bancale. Au lieu de else, vous avez besoin de else if.

Bien sûr, vous pouvez régler la minuterie que si les deux conditions sont fixées (au lieu de régler la minuterie, puis l'effacer):

if (location.host == "mail.exmx.net" && location.href.indexOf("?ae=Item&t=IPM.Note&a=New") == -1) { 

    /* The Domain is https://mail.exmx.net/owa/?ae=Folder&t=IPF.Note */ 

    var timer = setTimeout(function() { 
     location.reload(); 
    }, 30000 /* 30 Seconds used just as a test to speed up waiting time*/); 
}