Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IE浏览时禁用Javascript文件_Javascript_Internet Explorer - Fatal编程技术网

使用IE浏览时禁用Javascript文件

使用IE浏览时禁用Javascript文件,javascript,internet-explorer,Javascript,Internet Explorer,所以我网站上的一个脚本是鼠标悬停脚本,它可以改变颜色和图像。但是,这在IE中表现不正常,因此如果用户正在使用IE,我想禁用该脚本 我该怎么做 我想要的示例: //if IE not detected(any other browser detected) <script type="text/javascript" src="js/mousehover.js"></script> //else (IE detected) //do nothing /

所以我网站上的一个脚本是鼠标悬停脚本,它可以改变颜色和图像。但是,这在IE中表现不正常,因此如果用户正在使用IE,我想禁用该脚本

我该怎么做

我想要的示例:

//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
//如果未检测到IE(检测到任何其他浏览器)
//其他(即检测到的)
//不执行任何操作/不上载脚本

您可以使用条件注释:

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

调试脚本可能更好,至少对于IE8+

不过,如果你真的不想在IE上加载脚本,我相信它是唯一一款带有
ActiveXObject
的浏览器,所以最简单的方法可能就是在
mousehover.js
中对代码进行保护:

if (typeof ActiveXObject !== "undefined") {
    // IE, don't do the mouse hover stuff
}
或者,如果不在IE上下载JS对您来说真的很重要,您可以通过两种方式进行下载:

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

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

“在IE中表现不正常”?对于现代IE来说,这很可能是固定的。可能与IE10(FWIW)不同。这是非IE CC的错误实现。您需要在顶部添加
并添加前缀
,那么,我可以使用什么条件注释来处理所有IE?@DaftDev您测试过哪些IE版本?在IE(9、10、11)的最新版本中,脚本很可能运行良好。您能否编辑您的问题,使其包含
mousehover.js
,并解释什么“不起作用”,如果它的大小合理的话?@DaftDev:在这个阶段,Rob的建议可能需要一个单独的问题。为什么您建议脚本解决方案(最后两个)而不是条件注释?条件注释更可靠,因为它们不能被欺骗。而且它比你最后介绍的两个选项更具可读性,我想。@RobW:IE10是否废除了
ActiveXObject
?我试着处理IE的所有版本。@RobW:哇,他们真的很喜欢这个程序!:-)@贾斯汀:Edge不是IE。
<script>
if (typeof ActiveXObject === "undefined") {
    document.write('<scr' + 'ipt src="js/mousehover.js"></scr' + 'ipt>');
}
</script>