【问题标题】:Internet Explorer 7 + alert() doesn't workInternet Explorer 7 + alert() 不起作用
【发布时间】:2011-12-07 14:33:01
【问题描述】:

你们中的一些人能否告诉我为什么一个简单的alert() 在 Internet Explorer 7 中使用 jQuery 1.4 时不能在所有其他浏览器中工作?在过去的半个小时里,它一直让我发疯..!

$(document).ready(function(){
    alert("wtf?");
})

这个简单的例子在 IE7 中没有显示警报。亲自查看http://jsfiddle.net/8HQdp/

【问题讨论】:

  • alert()是一个JS函数,与jQuery无关。
  • @Lekensteyn 你的意思是它与 JQuery 无关..
  • @Lekensteyn:无意迂腐,alert() 不是 JS 函数,它是 DOM 函数。
  • @Don Pedro:你看的是原生IE7还是IE7模式下的IE8?
  • 我正在使用一个包含 IE6、IE7 和 IE8 的“包”(仅用于浏览器优化)。我会看看是否可以为您找到链接跨度>

标签: javascript internet-explorer-7


【解决方案1】:
  1. 确保您的控制台不显示任何错误,如有任何错误,请予以纠正。
  2. 确保您没有在 IE 上禁用浏览器提示
  3. 尝试使用window.alert() - 另一个alert()window 的冲突有可能(尽管不太可能)。
  4. 如果您有控制台支持,请尝试 console.log(alert); 并查看它的内容。它应该是这样的:

    function alert() {
        [native code]
    }
    

【讨论】:

    【解决方案2】:

    尝试使用window 而不是document

    【讨论】:

    • window 将始终处于“准备就绪”状态。这是document,这没有错误:api.jquery.com/ready 因此-1。
    【解决方案3】:

    它在我的 IE 8 中以 IE 7 模式工作。需要一段时间,但它确实会触发。

    我注意到 ready 函数中缺少一个分号。应该是……

    $(document).ready(function(){
    
    }); //missing semicolon here
    

    另外,请尝试使用 DOM 就绪功能的快捷方式...

    $(function(){
       // code here
    });
    

    【讨论】:

    • 啊,是的 - 我的错..我的例子太快了 :) 但不幸的是,它仍然无法在 IE7 中工作,也不能使用快捷方式:/ jsfiddle.net/8HQdp/4
    • 我确实注意到在 IE 7 中发生与您的代码无关的对象错误,我认为这是 jsfiddle 本身的错误。您是否在 Firefox 或其他可用的浏览器中尝试过?
    【解决方案4】:

    我使用的是 IE8,但在 IE7 模式下,http://jsfiddle.net/8HQdp/ 上的警报仍然会触发。 尝试将 $ 更改为 jQuery 并托管您自己的 jquery.js。

    并且还在警报之前尝试 console.log('wtf') 以便您知道它是警报还是 document.ready 已损坏。

    【讨论】:

    • console.log 肯定会破坏 IE,因为它不知道 window.console 属性...最好做一些明显的事情,比如$('body').hide()。 +1 用于测试,看看出了什么问题。
    • 尝试了 Boldewyn 的建议,它隐藏了正文。所以 document.ready 工作正常是 100%。jsfiddle.net/8HQdp/3
    猜你喜欢
    • 2012-06-07
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多