-1

我的任务是把 jQuery 放到一个 webapp 中,它需要 Internet Explorer 8 浏览器特有的功能(不需要 7)。这个怎么做?

在 jQuery 1.8 中可以这样做:

if ($.browser.msie && $.browser.version == '8') { /* does not matter */ }

在 1.9 版$.browser中被删除。推荐$.support的没有帮助。

4

2 回答 2

7

浏览器检测与特征检测

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

有条件的评论

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

<!--[if IE 8]>
<script src="my_ie8_specific_stuff.js"></script>
<![endif]-->

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

<html>元素上的条件类

另一种方法是在标签上放置一个<html>带有条件注释的类:

<!--[if IE 8]>         <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html>         <!--<![endif]-->

这种巧妙而棘手的技术将在 IE8 中添加一个ie8类,任何其他浏览器都无法获得它。html

您可以在 jQuery 中轻松地检查这一点:

var isIE8 = $('html').hasClass('ie8');
于 2013-03-06T21:59:47.093 回答
-2

如果您碰巧在应用程序中使用了剑道,则无需添加任何内容。当您在不同的浏览器中时,会自动生成一个类。如果你想检查它是否是 ie8,你可以这样做:

if($('html').hasClass('k-ie8'))
    // do something
于 2014-03-04T07:51:57.513 回答