Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

while (true) alert...

3 réponses
Avatar
Patrice Chevée
Bonjour,

y a t il un moyen de se sortir "proprement" d'une boucle genre

while(true) alert("Tu l'as dans l'os!!");

sans killer le brouteur?

Merci et bonne journée,

PC

3 réponses

Avatar
Laurent vilday
Patrice Chevée :

y a t il un moyen de se sortir "proprement" d'une boucle genre

while(true) alert("Tu l'as dans l'os!!");

sans killer le brouteur?



Non. A moins que le navigateur ne propose un moyen, je crois (non
vérifié) que Opéra et Chrome finissent par se rendre compte que ça
boucle et proposent un moyen de s'en sortir.

Mais si le navigateur n'a rien prévu, alors la seule solution c'est kill.

Moralité : Ne pas (jamais) utiliser alert(), surtout pas comme méthode
de débug.

Au pire si tu ne veux pas transformer tes alert() en éléments[1] HTML,
je te conseille de te créer ta propre méthode pour remplacer alert() :

function myAlert(msg)
{
if ( myAlert.keepGoing )
{
myAlert.keepGoing = window.confirm(msg);
}
}
myAlert.keepGoing = true;

while(true)
{
myAlert("Pas dans l'os !! M'enfin while(true){} quand même");
}

[1] window.alert() n'est rien d'autre qu'un <DIV> en position absolute
centré sur le viewport qui a la fâcheuse habitude d'être modal.
Comportement modal qui se trouve être le problème que tu rencontres.

--
laurent
Avatar
rm
Salut,
Le Sun, 12 Apr 2009 16:04:40 +0200, Laurent vilday a écrit:

Patrice Chevée :
y a t il un moyen de se sortir "proprement" d'une boucle genre
while(true) alert("Tu l'as dans l'os!!");
sans killer le brouteur?
Non. A moins que le navigateur ne propose un moyen, je crois (non
vérifié) que Opéra et Chrome finissent par se rendre compte que ça
boucle et proposent un moyen de s'en sortir.



Je confirme, au moins pour Opera, qui dispose dans la boite de message d'une option pour mettre fin à l'exécution de script
http://files.myopera.com/ra_mon/albums/166505/alert_stop_js_loop.png

@+
--
rm - http://opera-fr.com
Using Opera's NNTP client: http://www.opera.com/mail/
Avatar
Pascal PONCET
Patrice Chevée a écrit :
y a t il un moyen de se sortir "proprement" d'une boucle genre
while(true) alert("Tu l'as dans l'os!!");
sans killer le brouteur?




Bonjour,

Il me semble que cela devrait faire l'affaire :

while( condition ) {
if( confirm( message ) ) break;
...code boucle...
}

Cordialement,
Pascal