我的任务是把 jQuery 放到一个 webapp 中,它需要 Internet Explorer 8 浏览器特有的功能(不需要 7)。这个怎么做?
在 jQuery 1.8 中可以这样做:
if ($.browser.msie && $.browser.version == '8') { /* does not matter */ }
在 1.9 版$.browser
中被删除。推荐$.support
的没有帮助。
我的任务是把 jQuery 放到一个 webapp 中,它需要 Internet Explorer 8 浏览器特有的功能(不需要 7)。这个怎么做?
在 jQuery 1.8 中可以这样做:
if ($.browser.msie && $.browser.version == '8') { /* does not matter */ }
在 1.9 版$.browser
中被删除。推荐$.support
的没有帮助。
$.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');
如果您碰巧在应用程序中使用了剑道,则无需添加任何内容。当您在不同的浏览器中时,会自动生成一个类。如果你想检查它是否是 ie8,你可以这样做:
if($('html').hasClass('k-ie8'))
// do something