我的web应用程序使用的是ZeptoJS,但如果浏览器不支持jQuery,我想退回到Zepto。由于IE是目前唯一不受支持的主流浏览器,我很想检测一下IE:
if(navigator.appName == 'Microsoft Internet Explorer'){
// load jquery
} else {
// load zepto
}但我更喜欢具体检测Zepto的支持情况,并在其他情况下使用jQuery。有没有一种特征检测的方法来做到这一点?
发布于 2012-02-18 00:09:11
这可能是一个疯狂的想法(我不确定Zepto是否会在不受支持的浏览器上加载),但是使用Zepto自己的浏览器检测来查看它是否在不受支持的浏览器上呢?
$.os.ios // => true if running on Apple iOS
$.os.android // => true if running on Android
$.os.webos // => true if running on HP/Palm WebOS
$.os.touchpad // => true if running on a HP TouchPad
$.os.version // => string with version number, "4.0", "3.1.1", "2.1", etc.
$.os.iphone // => true if running on iPhone
$.os.ipad // => true if running on iPad
$.os.blackberry // => true if running on BlackBerry也许你可以这样做:
var isSupported = false;
for (os in $.os) {
if ($.os[os] == true) { isSupported = true; }
}这不会赶上chrome/firefox,它在Zepto上工作得很好,但它确实符合Zepto团队的意图,这可能会更好,也可能不会更好。
发布于 2012-01-05 05:13:15
您还可以使用JS技巧描述的here来检测浏览器是否为IE,并使用现代的异步脚本加载库来加载所需的库。Yepnope示例:
yepnope({
test: !+"\v1", // IE?
yep: 'jquery.js',
nope: 'zepto.js'
});发布于 2012-01-04 19:20:04
而不是使用Javascript,我会把它向前一步,并使用条件语句。这可能看起来像这样:
<!--[if lt IE 8 ]>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
<![endif]-->
<!--[if !IE]>
<script src="/js/zepto.js"></script>
<![endif]-->这将直接进入您的HTML文件。如果浏览器是Internet Explorer7或更低版本,则上面的代码段将加载jQuery。否则它将包含zepto.js。
https://stackoverflow.com/questions/8725905
复制相似问题