使用require.js如何根据浏览器或其它情况判断来加载需要的模块?

比如我有jquery 2.x 和jquery 1.x两个版本。
需要在现在浏览器使用jquery 2.x
在ie9以下的浏览器使用jquery 1.x
图片描述
以前我是用html里的条件判断语句来区别,加载不同版本jquery,现在我将使用require.js来管理模块,那么我将如果根据浏览器来选择加载不同版本的jquery?

阅读 7.6k
2 个回答

我觉得requirejs解决的问题是按需加载组件来复用,所以其实不需要使用requirejs来加载jquery。

如果非要这么做,requirejs之前可以前置config,你可以使用条件表达式来设置config参数,require内部判断config再加载js版本

if (document.getElementsByTagName('html')[0].className.indexOf('lte-ie9') != -1) {
    deps.push('jquery1');
}else {
    deps.push('jquery2');
}

//或者

if (document.getElementsByTagName('html')[0].className.indexOf('lte-ie9') != -1) {
    require('jquery1');    
}else {
    require('jquery2');  
}



<!--[if lte IE 9]> <html class="no-js lte-ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html class="no-js">
<!--<![endif]-->
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题