如何在IE8中运行jQuery代码

时间:2013-03-06 21:54:10

标签: jquery internet-explorer-8 browser-detection

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

在jQuery 1.8中可以做到:

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

在版本1.9中删除了$.browser。推荐的$.support无效。

2 个答案:

答案 0 :(得分:7)

浏览器检测与特征检测

$.browser因jc 而被弃用(自1.3起)。将它用于你想要使用它的东西不是推荐的做法。如果您依赖某个功能,请测试该功能(这称为feature detection$.support是执行此操作的一种方法),而不是测试特定浏览器。

条件评论

如果你真的需要定位旧的IE,请使用conditional comments(当旧的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]-->

This clever and tricky technique会在{8}中的ie8上放一个html课程,其他任何浏览器都无法获得该课程。

您可以在jQuery中轻松检查:

var isIE8 = $('html').hasClass('ie8');

答案 1 :(得分:-2)

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

if($('html').hasClass('k-ie8'))
    // do something