2011-08-05 130 views
4

有沒有其他人遇到過jquery-1.6.2.min.js似乎無法在運行Android 2.1的三星Galaxy S上工作的問題?如果是這樣,有沒有人知道我可以做什麼修改,以便能夠使用它的設備?jquery 1.6.2適用於Android 2.1模擬器,但不適用於Samsung Galaxy S

我最近開始開發一個基於JavaScript的網站的移動版本,這是我今年早些時候製作的。一切都很順利,一切似乎都適用於各種Android模擬器以及我自己的三星Galaxy S2。但是當我在運行標準Android 2.1的三星Galaxy S1上測試該網站時,我的所有JavaScript代碼似乎都被破壞了。所以我又回到了Android 2.1和Galaxy Tab的模擬器上(使用默認的WebKit瀏覽器)再次測試它,並且在那些網站上工作得很好。

我嘗試了很多解決方案,並且搜索了網站,不停地搜索標準Android 2.1和Galaxy S發佈的版本之間的差異,直到我決定降級我在1.6.2到1.4.2之間使用的Jquery版本。這立即解決了我的問題。但是,由於jquery用於移動設備的改進,我仍然希望能夠使用1.6.2。

在此先感謝。

編輯11月5日:

由於曼努埃爾Holzhauser指出,在jQuery的1.6.2腳本替換 「//」 通過 '//' 解決了這個問題。這似乎與兩個正斜槓和雙引號的組合有關,因爲後者和「/ *」都用在腳本中沒有問題。

僅供參考,帶有單個出現的代碼片段的「//」記載:!

// Main method 
ajax: function(url, options) { 

    var // Create the final options object 
    s = jQuery.ajaxSetup({}, options), // (...) 

    // Remove hash character (#7531: and string promotion) 
    // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) 
    // We also use the url parameter if available 
    s.url = ((url || s.url) + "").replace(rhash, "").replace(rprotocol, ajaxLocParts[ 1 ] + "//"); 

    // (...) 

} 
+0

你有沒有比較的WebKit的版本模擬器和你的手機? – Robert

+0

好點,我會研究一下。 TBH我認爲Galaxy S默認運行Android 2.1,它將擁有與Android 2.1模擬器相同的WebKit版本。 –

回答

4

我們有完全相同的問題,但我已經找到了解決辦法

您的壓縮版本替換"//"'//'

它功能沒有改變,但它會在你的手機上工作!

+0

感謝您分享您的解決方案,Manuel!我在單次發生的「//」中更改了雙引號,現在一切正常,無論是在Galaxy S還是其他設備上。 –

+0

非常感謝...真的幫助...唷! :) – Alex

0

當用新的設備或與您遇到的問題(http://docs.jquery.com/Qunit)遇到我會嘗試運行jQuery的單元測試

+0

我還沒有意識到像QUnit這樣的東西存在,謝謝你的建議,它聽起來非常有用。 –

相關問題