让IE加载不同的js文件



试图让一个页面加载不同的js文件,如果浏览器是IE,但不同的一个,如果它是任何其他浏览器。我已经破坏了这个,但是它不会工作,有人有什么想法吗?

任何帮助都是感激的:

<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>

看起来你的最后一个脚本标签有点混乱,加上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>

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

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

注意:else部分(<![if !IE]>)不是注释。因此,对于IE,它是else部分,而对于其他浏览器,它什么都不是。

编辑

您也可以尝试以下命令来代替document.write

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

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

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

当解析器找到第一个文字结束标记时,脚本执行将停止,这就是为什么需要在参数中截断它。

还要注意的是,IE10不支持条件注释,你应该使用功能检测而不是浏览器检测。

我想我也应该试着写一些代码;-)

<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>

使用导航器。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>

最新更新