1

所以我在我的网站上的一个脚本是一个鼠标悬停脚本,它可以改变颜色和图像。但是,这在 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
4

2 回答 2

2

调试脚本可能会更好,至少对于 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>

这将仅在非 IE 上加载脚本。但请注意,您拥有的任何后续脚本都不会等待该脚本加载,因此如果存在依赖项,您需要注意它们。

或使用document.write

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

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

于 2013-07-15T11:12:00.003 回答
0

您可以使用条件注释:

<![if !IE]>
<script type="text/javascript" src="js/mousehover.js"></script>
<![endif]>
于 2013-07-15T11:02:39.950 回答