2012-11-19 102 views
1

我的這兩行代碼在我的網頁:的google.load加載舊版本的jQuery導致版本問題

google.load("jquery", "1.7.0"); 
    google.load("jqueryui", "1.8.16"); 

我決定升級到較新的版本:

google.load("jquery", "1.8.2"); 
    google.load("jqueryui", "1.9.0"); 

現在整個頁面都打破了。當我在Google Chrome瀏覽器中查看Sources選項卡時,我發現舊版本的文件在那裏。另外當我看到控制檯的錯誤,我得到這些錯誤:

未捕獲的錯誤:模塊:'jquery'版本'1.8.2'沒有找到!

未捕獲的ReferenceError:$沒有定義

未捕獲的ReferenceError:jQuery是沒有定義

遺漏的類型錯誤:未定義是不是一個函數

注:此問題是不特定瀏覽器。此外,我已經升級過去沒有問題。這裏發生了什麼。我該如何解決它?非常感謝!

回答

2

如果你只使用谷歌的對象加載了jQuery,那麼你可以簡單地直接加載jQuery和避免與谷歌的腳本

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script> 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js" type="text/javascript"></script> 
除了

做任何的問題,jQuery的1.8是不是在谷歌裝載機

如果直接進入https://www.google.com/jsapi,您將在底部看到所有支持的版本,並且1.8.1不存在。

+1

這確實解決了這個問題。因此,這個問題似乎與谷歌加載​​器。然而,它在過去爲我工作。 – Barka

+0

是的,它打破的原因是它沒有包含在谷歌加載器中。我想在谷歌有兩個不同的人負責更新cdn和更新谷歌加載器,看來,他們不互相交談,或者負責谷歌加載器的人沒有更新他的代碼。我認爲如果cdn更新,裝載程序也會更新。我的錯誤。 – Barka

+0

你應該使用谷歌google.load的谷歌API,我沒有看到加載一個完整的API的重點,如果你打算使用它加載另一個API ......爲用戶提供流量並獲得最大收益速度..還注意到,在cdn頁面上,他們沒有說任何關於使用谷歌加載器。 – omercnet

0

@note自從首次發佈以來,Google的api/library loader API顯然有所改變。然後,我們可以.load('jquery','1.8')或.load('jqueryui','1.9'),並且仍然可以獲得穩定的邊緣版本。現在我們似乎無法指定版本/次要版本/任何可靠性 - 只有主要的例如。 '1'或確切的例如。 '1.8.3'。

@ see this page並向下滾動到版本控制以瞭解具體情況。它詳細介紹了上述內容,並通過通配符爲我們的開發環境提供了'建議'請求api的「測試版本」。 '1.x'來促進反饋和基本上的早期迴歸測試。我的兩個流行庫的測試失敗了,這個結構和這個文檔需要工作,但這隻適用於谷歌(而不是'託管')庫。此外,雖然只請求'1'版本的作品,你只會得到非常過時的版本。

@net對於託管庫,我正在計劃傾銷google.load模式,並將其記錄爲記錄爲here:的src =「」方法。如果使用更方便的話,Libs仍然可以通過標籤注入來加載異步,或者在需要之前將標籤放入。然後,雖然谷歌速度更快,但我仍然會支持這些上傳/我自己的副本加載的情況下 - 一個推薦的做法。