while (true) alert...

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Laurent vilday
Le #19103761
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
rm
Le #19106411
Salut,
Le Sun, 12 Apr 2009 16:04:40 +0200, 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.



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/
Pascal PONCET
Le #19109741
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
Publicité
Poster une réponse
Anonyme