我不时会遇到一个非常有趣的错误。我的javascript代码在执行期间不显示警报(msg),但如果我使用console.log(msg),它确实会显示在控制台中。什么可以阻止alert()显示?
非常感谢
答案 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)
浏览器可能会忽略alert
,confirm
和prompt
的另一个原因是文档位于iframe
中sandbox
} -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