2011-10-14 58 views
3

有些人可以告诉我为什么简单的alert()在Internet Explorer 7中无法使用jQuery 1.4,而在其他所有浏览器中工作?在过去的半个小时里,它一直让我发疯。Internet Explorer 7 + alert()不起作用

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

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

+1

'警报()'是一个JS函数无关的jQuery。 – Lekensteyn

+1

@Lekensteyn你的意思是它与JQuery无关.. – Rob

+1

你得到什么错误? –

回答

4
  1. 确保您的控制台不显示任何错误,并且如果有任何错误,请更正它们。
  2. 要确保你没有禁用浏览器会提示在IE
  3. 尝试使用window.alert() - 它可能(虽然不大可能),另一alert()window的冲突。
  4. 如果您有控制台支持,请尝试console.log(alert);并查看它说了什么。它应该是这样的:

    function alert() { 
        [native code] 
    } 
    
+0

'window.alert()'做了窍门 – yitwail

2

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

并且在alert之前尝试console.log('wtf'),所以你知道它是alert还是document.ready被破坏。

+0

console.log肯定会破坏IE,因为它不知道window.console属性......最好做一些明显的事情,比如'$('body')。hide()'。 +1进行测试,看看有什么损坏。 – Boldewyn

+0

试图与Boldewyn的建议,它隐藏了身体..所以它是100%,document.ready工作就好了.. http://jsfiddle.net/8HQdp/3/ – donpedroper

0

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

我注意到ready函数中缺少一个半冒号。应该是...

$(document).ready(function(){ 

}); //missing semicolon here 

此外,尝试使用快捷的DOM ready函数...

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

啊,你 - 我的坏..我是太快的例子:)但它仍然无法在IE7中工作,不幸的是,也没有捷径:/ http://jsfiddle.net/8HQdp/4/ – donpedroper

+0

我没有注意到,在IE 7中有一个对象错误发生与你的代码无关,我认为它是一个jsfiddle本身的错误。你有没有尝试过在Firefox或其他浏览器工作? – simonlchilds

-1

尝试使用windowdocument

+2

'窗口'将永远是一种“准备好”。它是'document',这不是错误:http://api.jquery.com/ready/因此-1。 – Boldewyn