Bonjour,
Je voulais savoir si il était possible de modifier voire ignorer un timeout dans une page que je consulte, si oui comment ?
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part setTimeout("play()", 4000);
Florian
Bonjour,
Je voulais savoir si il était possible de modifier voire ignorer un timeout dans une page que je consulte, si oui comment ?
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part setTimeout("play()", 4000);
Florian
Salut,
tout dépend quels sont tes outils… Je suppose que tu as Firebug.
Tu peux essayer ceci, c’est une méthode brutale qui va effacer tous les timeouts en cours :
Sinon tu peux aussi faire :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var lastTimer = setTimeout(function(){}); for (var i = 0; i < lastTimer; i++) { clearTimeout(i); clearInterval(i); };
Ou encore :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part play = null;
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part setTimeout = function(){};
Y’a d’autre moyens plus sophistiqués à l’aide de GreaseMonkey, mais si celui-ci te suffit, on ne va pas entrer dans les détails.
![]()
C’est pas standard, mais il semblerait qu’il y ait une valeur par défaut de 10 ms.
J’ai vérifié sous IE8, Opera, Safari (Windows), Chrome, en gros partout où on a une console…
Par contre y’a un joli merdier avec IE car le lastTimer est un très grand nombre, ce qui fait que la boucle for peut durer plusieurs minutes !
Il vaut mieux boucler à l’envers,
et s’arrêter dès qu’on juge que le timer gênant a bien été supprimé (à la première ou deuxième alerte « un script ne répond pas… »), ou préférer manipuler play.
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part for (var i = lastTimer; i--;) { }
![]()
@Watilin : ta méthode me semble quand même assez barbare
Mais pour tout dire, j'en vois pas d'autre... à moins de mieux connaitre le contexte de la demande
Ensuite, le second paramètre est logiquement obligatoire, je pense que son absence revient plutôt à ce qu'il soit à 0. Ce qui constitue une astuce qui peut être intéressante dans certaines situations. En effet, le délai à 0 dans un setTimeout ou un setInterval lance la fonction en paramètre dès que disponible, c'est-à-dire après que tous les traitements internes (en particulier la gestion des événements) aient achevé leur exécution.
Enfin, il est habituellement considéré qu'un délai inférieur à 25ms ne peut pas être considéré comme fiable.
Hello,
merci pour ces indications, ça m'a bien aidé.
J'ajouterai juste une chose : le paramètre time est obligatoire pour que ça fonctionne sur tous les navigateurs, les timeout restent "en vie" sur IE et Chrome quand on ne le spécifie pas.
Donc :
pour tuer tous les timeout sur tous les navigateurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var lastTimer = setTimeout(function(){}, 1); for (var i = 0; i < lastTimer; i++) { clearTimeout(i); clearInterval(i); };
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager