2015-11-13 47 views
0

我试图加载一个脚本在IE上,另一个脚本为其他浏览器。这是我迄今为止所尝试的:如果IE,运行这个脚本,否则,运行这个脚本

<!--[if IE]> 
<script type="text/javascript" src="../JS/Navigation-Toggle-IE.js"></script> 
<![endif]--> 

<!--[if !IE]> --> 
<script type="text/javascript" src="../JS/Navigation-Toggle.js"></script> 
<!-- <![endif]--> 

此声明只是使我的页面在Safari,Chrome,Firefox和Opera上变形。有没有人有任何见解或资源?

+0

http://www.quirksmode.org/css/condcom.html – lifetimes

+0

谢谢!立即检出 –

+0

从Internet Explorer 10中删除了条件注释。鼓励您在更新版本的Internet Explorer和Microsoft Edge中利用现代标准。如果您发现浏览器存在任何缺陷,作为Microsoft Edge团队成员,我很乐意提供帮助。 – Sampson

回答

1

不要关闭ie的条件注释,否则其他浏览器可以读取它。另外请记住,这只适用于ie9及以下版本。

<!--[if IE] 
<script type="text/javascript" src="../JS/Navigation-Toggle-IE.js"></script> 
[endif]--> 

<!--[if !IE]> 
<script type="text/javascript" src="../JS/Navigation-Toggle.js"></script> 
<![endif]--> 
+0

嗯,哦...我打算让它在更新版本的IE上运行。我试图让IE阅读更多的脚本(标记为-IE)和所有其他浏览器来阅读该脚本的不同版本。 –

+0

如果我可能问这是什么原因? IE 10+被视为头等舱,通常不需要旧版浏览器的解决方案。这是微软将其删除的原因。 (请记住,在内部网站上,IE通过使用选择退出怪异模式,很多时候开发人员正在追赶IE bug这是一个结果)。 –

+0

我的问题是我的网站的部分没有显示在IE 11上(请参阅此链接了解更多信息:http://stackoverflow.com/questions/33675219/ie-11-addclass-removeclass)。似乎有一段代码导致了这一点 - 它可能与我网站中的其他内容相冲突。 meta标签是否在我的脑海中并没有什么不同(我测试过它)。我认为对我来说最好的解决方案就是不要在Internet Explorer中添加这段代码,而是让它适用于所有其他浏览器。它不会在Internet Explorer上具有相同的功能,但至少用户可以看到它。 –

0

我不是JavaScript对象的条件注释迷,检查浏览器功能通常更可靠。

我的意思是代替制作2个脚本,制作一个并根据检测到的浏览器更改功能。 例子:

var ie = 'ActiveXObject' in window; 
var ielt9 = ie && !document.addEventListener; // ie8 and bellow 

if (ie) { 
// do ie stuff 
} else { 
// do other stuff 
}