2011-08-05 90 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这样的东西存在,谢谢你的建议,它听起来非常有用。 –

相关问题