Javascript: почему иногда alert () не работает, но консоль.журнал() делает?
время от времени, я сталкиваюсь с очень интригующим ошибка. Мой код javascript не отображает предупреждение(msg) во время выполнения, но если я использую консоль.log (msg)он отображается в консоли. Что может помешать отображению alert ()?
Спасибо большое
7 ответов
Это очень распространенная проблема, и каждый сталкивался с этой проблемой по крайней мере один раз. Причина, по которой alert() не работает, заключается в том, что ранее вы установили флажок "запретить этой странице создавать дополнительный dialoug".
давайте посмотрим на этот код.
<script type="text/javascript">
var js_name = ['elem1', 'elem2']
for (var i = 0; i < js_name.length; i++) {
alert(js_name[i]);
};
</script>
при запуске кода будет два поля предупреждения. Если вы установите флажок" запретить этой странице создавать дополнительные dialoug", а затем обновите страницу снова, вы никогда не получите предупреждение снова.
решение: вам нужно закрыть эту веб-страницу и снова открыть ее в браузере(не нужно закрывать весь браузер). Я предполагаю, что вы используете Chrome. Internet Explorer или FireFox не имеют этой функции флажка.
Если вы переопределите функцию оповещения, чтобы она не работала
alert = function()
{
...
};
alert('hello') // won't show any alert
to my knowledge alert () всегда отображается, если он не повторяется, и в этом случае вас спросят, хотите ли вы продолжать показывать оповещения.
Я полагаю, что особенности того, как это обрабатывается, зависят от Вашего браузера. Не хотите поделиться подробностями? :)
Это также происходит в ColdFusion. Если вы используете в любом месте после тега скрипта тег cflocation (вместо location.href) предупреждение не будет отображаться.
в Firefox: перейдите в раздел Параметры - > содержимое и снимите флажок" блокировать всплывающие окна". Перезапустите браузер.
еще одна причина, почему alert
, confirm
и prompt
может игнорироваться браузером, если документ находится в iframe
что есть sandbox
-атрибут, без allow-modals
в его стоимости.
например, Firefox молча игнорирует это, однако Chromium показывает предупреждение.
Это также может произойти в Firefox, если у вас открыты инструменты разработки и Адаптивный Режим Проектирования включено. Это звучит как это ошибка.