Javascript: Почему иногда alert() не работает, но console.log() делает?

Время от времени я сталкиваюсь с очень интригующей ошибкой. Мой javascript-код не отображает предупреждение (msg) во время выполнения, но если я использую console.log(msg), он отображается в консоли. Что может предотвратить отображение предупреждения()?

Спасибо большое

Ответы

Ответ 1

Это очень распространенная проблема, и каждый столкнулся с этой проблемой по крайней мере один раз. Причина alert() не работает, потому что ранее вы отметили флажок "запретить эту страницу создавать дополнительные диалоги".

позволяет взглянуть на этот код.

<script type="text/javascript">

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

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

</script>

Если вы запустите код, появится два окна оповещения. Если вы установите флажок "Запретить эту страницу создавать дополнительные диалоги", а затем снова обновите страницу, вы больше не будете получать оповещение.

Решение: вам нужно закрыть эту веб-страницу и снова открыть ее в браузере (не нужно закрывать весь браузер). Я предполагаю, что вы используете хром. Internet Explorer или FireFox не имеют этой функции.

Ответ 2

Если вы переопределите функцию предупреждения, чтобы она не работала

alert = function() 
{
 ...
};

alert('hello') // won't show any alert

Ответ 3

Насколько мне известно, alert() всегда отображается, если это не повторяется, и в этом случае вас спрашивают, хотите ли вы продолжать показывать предупреждения.

Я полагаю, что специфика того, как это обрабатывается, зависит от вашего браузера. Хотите поделиться более подробной информацией?:)

Ответ 4

Это также происходит в ColdFusion. Если вы используете где-нибудь после тега script тег cflocation (вместо location.href), предупреждение не будет отображаться.

Ответ 5

В Firefox: перейдите в Options → Content и снимите флажок "Блокировать всплывающие окна". Перезагрузите браузер.