我遇到了LABjs的问题。我加载了所有脚本,但是当我在IE中使用它时它完全崩溃了。
$LAB
.script('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js').wait()
.script('https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js')
如果我添加一个条件语句
<!--[if IE ]>
<script type="text/javascript" src="somescript.js"></script>
<![endif]-->
这会失败。我如何将其包含在LABjs中?
感谢。
答案 0 :(得分:1)
我首先强烈说,你不应该再做IE浏览器了。但是,如果你真的绝对必须,并且在你为这种不良做法多次拍打自己的手腕之后......
(function(){
// From: http://james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/
var ie_version=(function(){var c,a=3,b=document.createElement('div'),d=b.getElementsByTagName('i');while(b.innerHTML='<!--[if gt IE '+(++a)+']><i></i><![endif]-->',d[0]);return a>4?a:c})();
$LAB.setOptions({AlwaysPreserveOrder:true})
.script('https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
.script('https:///ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js')
.script(ie_version ? 'somescript.js' : '')
})();
ie_version
代码片段来自:http://james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/,它使用动态创建的IE条件注释来确定IE版本。
注意:我假设需要在jquery和jquery-ui脚本之后严格执行“somescript.js”,具体取决于你发布的内容。如果情况并非如此,如果您愿意,可以将其放在$LAB
链中的其他位置,然后您可以取出setOptions({AlwaysPreserveOrder:true})
,而只在链中使用wait()
在需要/必要的地方。