這似乎是一個簡單的問題來解決,但它是踢我的屁股。IE9 js加載順序和jQuery
以下簡單示例在IE9中產生錯誤。我已經使用IE9的開發者頁面來監視網絡加載,並且它看起來像IE在加載/評估包含的JavaScript之前加載並執行主體的腳本。
我已經嘗試了所有通過尋找問題的答案,包括添加<meta charset="UTF-8" />
和<meta http-equiv="x-ua-compatible" content="IE8"/>
<html>
<head>
<title>Demo of IE suckiness</title>
<script type='text/javascript'
src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
</head>
<body>
This works in every browser but not IE9. IE gives the error:
<pre>
Line: 9
Error: The value of the property '$' is null or undefined, not a Function object
</pre>
<script type="text/javascript" defer="defer">
$(document).ready(function(){
alert("Must not be IE");
});
</script>
</body>
</html>
發現我有一個變通的各種技巧。將準備好的腳本移動到<body onload="ready()">
,但我不能相信這對IE9來說是破壞的,我一定是做錯了什麼,只是看不到它。
爲什麼使用「延遲」? $(document).ready表示它將在文檔加載時執行。 –
你可以驗證正在下載jQuery庫嗎?也許http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js由於某種原因被阻止。 – fehays
我驗證了它正在被下載。問題是在頁面的腳本運行之前它沒有被加載。 「推遲」是一個瘋狂的嘗試讓它不首先加載。我只是沒有道理。 下面的解決方案是重置我所有的IE設置。我必須改變安全設置或什麼?它只是沒有意義,IE會下載,但不加載JQuery。 – TrophyGeek