2013-07-15 50 views
1

因此,我在我的网站中有一个脚本是改变颜色和图像的鼠标悬停脚本。然而,这在IE中表现不正确,所以我想在用户使用IE时禁用该脚本。如果使用IE浏览器禁用Javascript文件

我该怎么做?我想要什么

例子:

//if IE not detected(any other browser detected) 
    <script type="text/javascript" src="js/mousehover.js"></script> 

//else (IE detected) 
    //do nothing/don't upload the script 
+4

*“在IE中表现不正常”*?对于现代IE来说,这可能是非常可能的。 –

+1

[包括不同的JavaScript文件,取决于浏览器?]的可能的重复(http://stackoverflow.com/questions/3688769/include-different-javascript-file-depending-on-browser) –

回答

2

它可能更好地调试脚本,至少在IE8 +。

如果你真的想避免加载在IE浏览器的脚本,不过,我相信这是与ActiveXObject唯一的浏览器,所以最简单的事情可能只是把一个后卫在你的代码mousehover.js

if (typeof ActiveXObject !== "undefined") { 
    // IE, don't do the mouse hover stuff 
} 

或者,如果它真的很重要,你不要下载JS在IE浏览器,你可以这样做有两种方式:

<script> 
(function() { 
    if (typeof ActiveXObject === "undefined") { 
     var s = document.createElement('script'); 
     s.src = "js/mousehover.js"; 
     document.documentElement.appendChild(s); 
    } 
})(); 
</script> 

将加载脚本只对非IE浏览器。但请注意,您拥有的任何后续脚本将会加载而不是等待该脚本,因此如果存在依赖关系,则需要注意这些脚本。

或使用document.write

<script> 
if (typeof ActiveXObject === "undefined") { 
    document.write('<scr' + 'ipt src="js/mousehover.js"></scr' + 'ipt>'); 
} 
</script> 

...这将保持加载顺序,但不能在XHTML中使用。

+0

为什么建议脚本解决方案(最后两个)通过条件注释?有条件的评论更加可靠,因为它们不能被欺骗。而且它比上次提供的两个选项更具可读性,即imo。 –

+0

@RobW:IE10会不会使用'ActiveXObject'?我试图处理**所有**版本的IE。 –

+0

@TJ它仍然在IE10中工作,但不再在IE11中工作。 –

0

可以使用条件注释:

<![if !IE]> 
<script type="text/javascript" src="js/mousehover.js"></script> 
<![endif]> 
+1

不像IE10(FWIW)。 –

+2

这是非IE CC的错误实现。您需要在顶部添加'',并在底部添加前缀<! - '。此外,这只会影响IE 9和更低,而不是IE10 +。 –

+0

那么,我可以使用什么条件注释来处理所有IE? – DaftDev

相关问题