Javascript:为IE9加载不同的样式表

时间:2012-01-12 06:41:06

标签: javascript css internet-explorer-9 stylesheet browser-detection

所以我想编写一个函数来测试用户是否正在使用IE / IE9并且如果为true则有条件地加载单独的样式表。已经阅读了大量的文档,但似乎没有一个单一的汇总一致和最近(大约2011年)我能找到的答案。

所以问题是:

1)您最喜欢和最现代的浏览器检测方法是什么?检查document.attachEvent是我使用的,但有更好的方法吗?

2)根据浏览器动态有条件地更改样式表的首选方法是什么? setAttribute无效<style>,无法确定如何执行此操作。

提前致谢, 丹尼斯

2 个答案:

答案 0 :(得分:4)

您正在寻找Conditional Comments

<!--[if IE 9]>
your IE9 stylesheet
<![endif]-->

答案 1 :(得分:1)

你可以通过多种方法来实现

1)CSS检查

<!--[if lt IE 7]>your stylesheet for ie < 7 <![endif]-->
<!--[if IE 7]>your stylesheet for ie7<![endif]-->
<!--[if IE 8]>your stylesheet for ie8<![endif]-->
<!--[if IE 9]>your stylesheet for ie9<![endif]-->

2)通过javascript检查

var isIe = (navigator.appName == "Microsoft Internet Explorer")
var isIe9 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 9") != -1)

3)使用第三方图书馆,例如Modernizr