2011-10-14 88 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