2014-12-03 113 views
0

使用這個很簡單的例子,我可以說明我與Chrome和Firefox執行jQuery函數有一個問題:Chrome和Firefox jQuery的問題

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
</head> 

<body> 
<h2>This is a heading</h2> 
<p>This is a paragraph.</p> 
<p id="test">This is another paragraph.</p> 
<button>Click me</button> 

<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $("#test").hide(); 
    }); 
}); 
</script> 

</body> 

</html> 

當我在我的本地服務器(毫安)上運行此,使用Chrome和Firefox都可以正常工作。但是,當我將它上傳到我的實時站點(託管在GoDaddy)時,jQuery腳本將不會在任一瀏覽器中執行。有趣的是,Safari在MAMP服務器和現場網站上都能正常工作。有誰知道爲什麼Chrome和Firefox不?

上面的代碼是從w3schools.com複製並粘貼的,我借用它來了解我是否可以使用自己的代碼複製問題。我非常驚訝地發現,我可以用這個非常簡單的例子複製這個問題!有關瀏覽器兼容性問題的stackoverflow上有很多帖子,但瀏覽器兼容性似乎不太可能在這種情況下,因爲當代碼從MAMP服務器運行時,兩個瀏覽器都可以工作。

我還聯繫了GoDaddy,詢問是否有可能需要更改的環境設置。我得到的迴應是,這是我的代碼問題。我發現很難相信,因爲我可以用w3schools.com這個非常簡單的代碼複製這個問題。接下來的事實是,Safari在這兩種環境中都能正常工作,這讓我想起了瀏覽器的問題。

我很感激您的任何洞察力。

+0

使用開發人員工具在Chrome上檢查JavaScript控制檯。這是一個微不足道的測試,我感到震驚,它不起作用。它可能是緩存(在他們的服務器端),也許他們已經增加了額外的標記,導致碰撞等 – 2014-12-03 11:46:42

+1

他們是否以任何方式修改你的頁面?不幸的是,我們無法重現錯誤,因爲*代碼有效*。 – Mooseman 2014-12-03 11:46:46

+0

代碼中沒有錯誤。將此鏈接提供給您的GoDaddy支持。 http://jsfiddle.net/osg9crs4/1/ – Jinandra 2014-12-03 11:51:04

回答

1

問題原來是jQuery庫被引用的方式。在我的例子中,來源是http :,但我的現場網站上有一個SSL證書。將地址更改爲jQuery CDN到https:解決了問題。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

它仍然好奇,Safari瀏覽器沒有這個問題,其他瀏覽器。對我來說,我也很好奇,我的網站已經運行了六個月,引用了http:的jQuery CDN,其中有大量的jQuery頁面,之前沒有任何問題。無論如何,這個小小的改變今天就成了一招。如果您在某些環境中使用jQuery而不是其他人使用jQuery的類似經驗,請添加檢查是否存在證書列表中的SSL證書。

+0

現代瀏覽器通常不喜歡所謂的「混合內容」(即一頁上的HTTP和HTTPS)。 – 2014-12-03 15:33:01