如何在IE8中运行jQuery代码

PRA*_*T P -1 jquery browser-detection internet-explorer-8

我的任务是将jQuery放入webapp,需要特定于Internet Explorer 8浏览器的功能(不需要7个).这该怎么做?

在jQuery 1.8中可以做到:

if ($.browser.msie && $.browser.version == '8') { /* does not matter */ }
Run Code Online (Sandbox Code Playgroud)

在版本1.9 $.browser中删除.建议$.support没有帮助.

kap*_*apa 7

浏览器检测与特征检测

$.browser从jQuery中弃用了一个原因(从1.3开始).将它用于你想要使用它的东西不是推荐的做法.如果您依赖于某个功能,请测试该功能(这称为功能检测,$.support是执行此操作的一种方法),而不是测试特定浏览器.

条件评论

如果你真的需要针对旧的IE,请使用条件注释(当旧的IE不再存在时可以轻松删除,并且不会不必要地膨胀其他浏览器):

<!--[if IE 8]>
<script src="my_ie8_specific_stuff.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

在里面my_ie8_specific_stuff.js你可以写任何你需要的东西,它只会在IE8上执行.

<html>元素上的条件类

另一种方法是在<html>标记上添加条件注释:

<!--[if IE 8]>         <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html>         <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

这种聪明而棘手的技术将在IE8中放入一个ie8html,任何其他浏览器都无法获得它.

您可以在jQuery中轻松检查:

var isIE8 = $('html').hasClass('ie8');
Run Code Online (Sandbox Code Playgroud)