如果浏览器是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>
答案 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>