让IE加载不同的js文件

时间:2013-06-15 16:27:27

标签: javascript internet-explorer selection

如果浏览器是IE,尝试获取页面以加载不同的js文件,但如果是任何其他浏览器,则尝试使用不同的页面。我已经腐化了这个,但它不起作用,有没有人有任何想法?

感谢任何帮助:

<script type="text/javascript">
var ie = false;
</script>
<!--[if IE]>
<script type="text/javascript">
ie = true;
</script>
<![endif]-->
<script type="text/javascript">
if(ie == false)
{ 
document.write ("<script src="js/moreskins.js" type="text/javascript">")</script>;
} else {
    document.write ("<script src="js/ieskins.js" type="text/javascript">")</script>;
}
</script>

5 个答案:

答案 0 :(得分:5)

看起来你的最后一个脚本标签有点混乱,加上Teemu提到,IE10不支持条件HTML评论。

如果您确实需要定位IE,我会检查用户代理是否为“MSIE”:

<script type="text/javascript">
  var ie = !(navigator.userAgent.indexOf("MSIE")<0);
  if(ie == false) { 
    document.write ("<script src=\"js/moreskins.js\"></scr"+"ipt>");
  } else {
    document.write ("<script src=\"js/ieskins.js\"></scr"+"ipt>");
  }
</script>

答案 1 :(得分:3)

使用条件注释在IE中加载文件,在其他浏览器中忽略。

<!--[if IE]>
   <script src="js/ieskins.js" type="text/javascript">
<![endif]-->
<![if !IE]>
   <script src="js/moreskins.js" type="text/javascript">
<![endif]>

注意:其他部分(<![if !IE]>)不是评论。因此,对于IE来说,它是其他浏览器的一部分,它没什么。

修改

您还可以尝试以下操作,而不是document.write

var script = document.createElement('script');
   script.src = "js/moreskins.js";
   document.getElementsByTagName('head')[0].appendChild(script);

答案 2 :(得分:3)

此处的问题是结束script标记。使用document.write()添加脚本时,需要将结束标记剪切成碎片。如下所示(注意固定的引用和括号)。

document.write('<script src="js/moreskins.js" type="text/javascript"></scr' + 'ipt>');

当解析器找到第一个文字结束标记时,脚本执行停止,这就是你需要在参数中删除它的原因。

另请注意,IE10不支持条件注释,您应该使用功能检测而不是浏览器检测。

答案 3 :(得分:0)

我以为我也会写一些代码; - )

<script>
(function(){
    var script = document.createElement("script"),
        is_ie = (/MSIE/gi.test(navigator.userAgent));
    script.src = (is_ie) ? 'js/ieskins.js' : 'js/moreskins.js';
    document.getElementsByTagName('head')[0].appendChild(script);
}());
</script>

答案 4 :(得分:-1)

使用navigator.userAgent更好更简单。您的代码在除IE之外的任何其他浏览器中都不起作用,因为只有IE才能理解<!--[if IE]>

的平均值
<script type="text/javascript">
    var ie = false;
    if(/MSIE/gi.test(navigator.userAgent)){
       ie = true;
    }
    if(ie == false)
    { 
    document.write ("<script src="js/moreskins.js" type="text/javascript">")</script>;
    } else {
        document.write ("<script src="js/ieskins.js" type="text/javascript">")</script>;

}
</script>
相关问题