首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zepto回退到jQuery

Zepto回退到jQuery
EN

Stack Overflow用户
提问于 2012-01-04 19:14:52
回答 10查看 24.6K关注 0票数 26

我的web应用程序使用的是ZeptoJS,但如果浏览器不支持jQuery,我想退回到Zepto。由于IE是目前唯一不受支持的主流浏览器,我很想检测一下IE:

代码语言:javascript
复制
if(navigator.appName == 'Microsoft Internet Explorer'){
    // load jquery
} else {
    // load zepto
}

但我更喜欢具体检测Zepto的支持情况,并在其他情况下使用jQuery。有没有一种特征检测的方法来做到这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-02-18 00:09:11

这可能是一个疯狂的想法(我不确定Zepto是否会在不受支持的浏览器上加载),但是使用Zepto自己的浏览器检测来查看它是否在不受支持的浏览器上呢?

代码语言:javascript
复制
$.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

也许你可以这样做:

代码语言:javascript
复制
var isSupported = false;
for (os in $.os) {
    if ($.os[os] == true) { isSupported = true; }
}

这不会赶上chrome/firefox,它在Zepto上工作得很好,但它确实符合Zepto团队的意图,这可能会更好,也可能不会更好。

票数 8
EN

Stack Overflow用户

发布于 2012-01-05 05:13:15

您还可以使用JS技巧描述的here来检测浏览器是否为IE,并使用现代的异步脚本加载库来加载所需的库。Yepnope示例:

代码语言:javascript
复制
yepnope({
  test: !+"\v1", // IE?
  yep: 'jquery.js',
  nope: 'zepto.js'
});
票数 20
EN

Stack Overflow用户

发布于 2012-01-04 19:20:04

而不是使用Javascript,我会把它向前一步,并使用条件语句。这可能看起来像这样:

代码语言: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。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8725905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档