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 и снимите флажок "Блокировать всплывающие окна". Перезагрузите браузер.