Javascript:为什么有时alert()不起作用但console.log()呢?

时间:2014-01-22 08:08:22

标签: javascript alert console.log

我不时会遇到一个非常有趣的错误。我的javascript代码在执行期间不显示警报(msg),但如果我使用console.log(msg),它确实会显示在控制台中。什么可以阻止alert()显示?

非常感谢

10 个答案:

答案 0 :(得分:23)

这是一个非常常见的问题,每个人都至少遇到过这个问题一次。 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>

如果运行代码,将有两个警告框。如果您检查&#34;阻止此页面创建额外的Dialoug&#34;复选框,然后再次刷新页面,你再也没有得到警告框。

解决方案是您需要关闭该网页并在浏览器中重新打开(不需要关闭整个浏览器)。 我假设你正在使用铬。 Internet Explorer或FireFox没有此复选框功能。

答案 1 :(得分:4)

如果覆盖警报功能,则无效

alert = function() 
{
 ...
};

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

答案 2 :(得分:1)

据我所知,除非重复,否则会始终显示alert(),在这种情况下,系统会询问您是否要继续显示警报。

我认为有关如何处理这些内容的细节取决于您的浏览器。关心分享更多细节? :)

答案 3 :(得分:1)

这也发生在ColdFusion中。如果您在脚本标记cflocation标记(而不是location.href)后的任何位置使用警报将不会显示。

答案 4 :(得分:1)

如果您打开了开发工具并启用了响应式设计模式,则在Firefox中也可能发生这种情况。听起来像it's a bug

答案 5 :(得分:0)

在Firefox中:转到选项 - &gt;内容并取消选中“阻止弹出窗口”复选框。重启浏览器。

答案 6 :(得分:0)

浏览器可能会忽略alertconfirmprompt的另一个原因是文档位于iframesandbox } -attribute,其值不包含allow-modals

例如,Firefox默默地忽略了这一点,但Chromium会显示警告。

答案 7 :(得分:0)

我在这里有一个类似的问题,当我用“警报”替换控制台日志时,它不起作用,但是console.log可以起作用。

无效的代码是:

request(options, function(error, response, body) { // Requesting API

    var statusCode = response.statusCode;

    if(statusCode === 200){
      alert("Success");
    } else {
      alert(error);
    }

,工作代码为:

request(options, function(error, response, body) { // Requesting API

    var statusCode = response.statusCode;

    if(statusCode === 200){
      console.log("Success");
    } else {
      console.log(error);
    }

答案 8 :(得分:0)

如果您尝试在Chrome浏览器地址URL中执行javascript警报功能,则该选项卡上之前没有加载任何页面,则不会收到该消息。 仅当警报框不是一个新选项卡时,您才会得到它。 如果存在以前加载的网页,然后尝试在地址栏中运行javascript,则会得到预期的结果。 希望它可以澄清这种难以检测到的Chrome行为。

答案 9 :(得分:-1)

这是我的简单代码:

 scoops=5;
      while(scoops<6){
          alert ("ice creame is getting low");
      }
      console.log("life without icecream is not same");

当我运行浏览器时,向我显示未定义参考erro.alert