2014-02-25 24 views
1

我有一個HTML文檔(見下文)在IE9,Chrome等中正常工作,但在IE10中,在某些機器上,失敗並顯示錯誤「$沒有定義的」。這表明jQuery沒有被加載。然而,有問題的機器上的F12工具顯示,jquery 下載到瀏覽器(我得到了200響應,並且jQuery代碼在響應正文中)。如果我使用與HTML文檔相同的服務器加載的相同版本的jQuery,它可以工作,並進一步暗示CDN是一個因素。 IE ESC關閉。防病毒軟件位於機器上,但被禁用(McAfee)。 F12工具顯示它在IE10兼容視圖,標準模式下運行。更改模式不起作用。什麼將阻止在IE 10中執行CDN下載的腳本

在這種情況下,我可以做一個本地回退,但在我不控制標記的情況下,只是一般情況下,我想知道什麼阻止了它的運行。

這是在一個大型企業,並有組策略自定義,但我無法找到任何東西在IE設置看起來「關閉」。是否有具體的IE設置或其他事情會導致此行爲?

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" > 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" > 
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.11.0.min.js"> 
</script> 
<script type="text/javascript"> 

$(function(){ 
    $('#cmdTest').click(function(){ 
     alert('hi'); 
    }); 
}); 
</script> 

<title>CDN Example</title> 


</head> 

<body> 
This is an example of broken CDN. You should see an alert when you click the button below. 
<button id="cmdTest">Test</button> 
</body> 

</html> 
+0

你確定當它在失敗時在web服務器上運行它(它不會在本地文件系統上運行) –

+0

當我嘗試在頁面中包含動態js腳本時,來自不同的域。無論我是通過腳本標記還是通過構建j/js(jquery或vanilla)來創建請求,js都會執行。但問題來自嘗試在服務器端腳本中設置和讀取cookie,然後設置並輸出js值。 js被執行但沒有設置值。我發現這是IE新版本的某種安全問題..默認安全/隱私設置阻止遠程設置第三方Cookie。我不知道這是否是你的完整故事,但 –

+0

這就是我發現..如果我把我的IE安全/隱私設置降到最低,它接受它。但這是一個失敗,因爲我不能指望遊客這樣做..無論如何,也許你的問題是相同的或相關的。嘗試降低IE的安全/隱私設置,看看它是否有效 –

回答

1

您試過src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.11.0.min.js"?您的代碼在我添加http://之前不適用於我的任何地方。然後它在IE和Chrome都可以工作

+0

如果不使用'http'(或'https'),使用'//'告訴瀏覽器使用與當前頁面相同的協議。它被使用,所以你不必爲http/https做單獨的頁面。我(完全沒有感到驚訝,它在IE中不起作用)。 –

+1

我從來沒有遇到過問題,IE瀏覽器或任何瀏覽器不接受使用沒有'http'或'https'的'//'? –

+0

是的,我一直這樣做,它適用於所有瀏覽器。我用http://試了一下(因爲我在這裏是非ssl)並且沒有工作。 – Daniel

相關問題