web-dev-qa-db-fra.com

Javascript: Pourquoi parfois alert () ne fonctionne pas mais console.log () le fait?

De temps en temps, je suis confronté à un bug très intriguant. Mon code javascript n'affiche pas d'alerte (msg) pendant l'exécution, mais si j'utilise un fichier console.log (msg), il s'affiche dans la console. Qu'est-ce qui pourrait empêcher alert () de s'afficher?

Merci beaucoup

17
siebmanb

C’est un problème très courant, et tout le monde a été confronté à ce problème au moins une fois . La raison pour laquelle alert () ne fonctionne pas, c’est que vous avez précédemment coché la case "Empêcher cette page de créer un dialoug supplémentaire".

regardons ce code.

<script type="text/javascript">

var js_name = ['elem1', 'elem2']

 for (var i = 0; i < js_name.length; i++) {
    alert(js_name[i]);
 };

</script>

Il y aura deux boîtes d’alerte si vous exécutez le code. Si vous cochez la case "Empêcher cette page de créer des numéros de téléphone supplémentaires", puis actualisez à nouveau la page, vous ne recevrez plus jamais de boîte d'alerte.

La solution est que vous devez fermer cette page Web et rouvrir à nouveau dans le navigateur (vous n'avez pas besoin de fermer tout le navigateur). Je suppose que vous utilisez chrome . Internet Explorer ou FireFox ne dispose pas de cette case à cocher.

22
user1906399

Si vous annulez la fonction d'alerte afin qu'elle ne fonctionne pas

alert = function() 
{
 ...
};

alert('hello') // won't show any alert
4
Tareq Salaheldeen

A ma connaissance, alert () est toujours affiché, sauf si elle est répétitive. Dans ce cas, il vous est demandé si vous souhaitez continuer à afficher des alertes.

Je suppose que les détails sur la manière dont cela est géré dépendent de votre navigateur. Voulez-vous partager plus de détails? :)

1
Croot

Cela se produit également dans ColdFusion. Si vous utilisez une balise cflocation après la balise script (au lieu de location.href), l'alerte ne s'affichera pas. 

1
JustHelpingOut

Dans Firefox: allez dans Options -> Contenu et décochez la case "bloquer les fenêtres pop-up". Redémarrer le navigateur.

0
olga

Une autre raison pour laquelle alert, confirm et Prompt peut être ignorée par le navigateur, est si le document se trouve dans une iframe ayant un attribut sandbox- sans allow-modals dans sa valeur.

Par exemple, Firefox l'ignore silencieusement, mais Chromium affiche un avertissement.

0
Yeti