我试图通过yepnope(Modernizr.load)加载selectivizr但是我遇到了测试命令的问题。目前我使用rgba攻击它(因为它会影响< = IE8),但它也会影响较旧的Opera和FF浏览器,所以不理想(看起来很垃圾)
以下是代码:
<script>
yepnope.errorTimeout = 2000;
Modernizr.load([
{
load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
complete: function () {
if ( !window.jQuery ) {
Modernizr.load('scripts/jquery-1.6.1.min.js');
}
}
},
{
test : Modernizr.mq(),
nope : 'scripts/respond.min.js'
},
{
test : Modernizr.rgba,
nope : 'scripts/selectivizr-min.js'
}
]);
</script>
我知道在selectivizr网站上它说你应该加载它:
<!--[if (gte IE 6)&(lte IE 8)]>
<script type="text/javascript" src="selectivizr.js"></script>
<![endif]-->
但是这不起作用,因为它在jquery完成之前加载。
我也知道有一个ie!在yepnope中的前缀,但我无法确定在何处/如何包含此文件。包含一个5k if IE文件加载一个4k selectizr文件似乎毫无意义。
感谢任何帮助/指导。
A
答案 0 :(得分:2)
只需将条件添加到URL的开头,然后添加!:
<script>
// yepnope 1.5.4
yepnope.errorTimeout = 2000;
Modernizr.load([
{
load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
complete: function () {
if ( !window.jQuery ) {
Modernizr.load('scripts/jquery-1.6.1.min.js');
}
}
},
{
test : Modernizr.mq(),
nope : 'scripts/respond.min.js'
},
{
load : 'iegt5!ielt9!scripts/selectivizr-min.js'
}
]);
</script>