在做项目时总会要调整IE浏览器兼容性,在html中,通常可以使用条件注释法,这也是IE专有的hack方法。
Html代码
- <!--[if IE]>
- 只在IE浏览器显示
- <![endif]-->
- <!--[if !IE]>
- 只在非IE浏览器显示
- <![endif]-->
- <!--[if IE 6]>
- 只在IE6浏览器显示
- <![endif]-->
- <!--[if ! IE 8]>
- 在非IE8浏览器显示
- <![endif]-->
<!--[if IE]> 只在IE浏览器显示 <![endif]--> <!--[if !IE]> 只在非IE浏览器显示 <![endif]--> <!--[if IE 6]> 只在IE6浏览器显示 <![endif]--> <!--[if ! IE 8]> 在非IE8浏览器显示 <![endif]-->
但经过测试,发现该方法只在IE9及以下版本试用,不适用于IE10和IE11。而且因为在IE9及以下有用,也导致<!--[if !IE]>是个鸡肋,没有用。这时需要判断IE10以上,则不能使用条件注释法了。
如果要判断IE10,可以这样判断:
Html代码
- <style>
- @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
- .class {
- /* 仅限IE10的代码 */
- }
- }
- </style>
<style> @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { .class { /* 仅限IE10的代码 */ } } </style>
但要判断IE11又不知如何判断了,网上看了看有js的方法,后来找到一款不错的JavaScript的判断游览器的方法,特别的全面。如下:
Js代码
- $(function () {
- var Sys = {};
- var ua = navigator.userAgent.toLowerCase();
- var s;
- (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] :
- (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
- (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
- (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
- (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
- (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
- if (Sys.ie) document.write(‘IE: ‘ + Sys.ie);
- if (Sys.firefox) document.write(‘Firefox: ‘ + Sys.firefox);
- if (Sys.chrome) document.write(‘Chrome: ‘ + Sys.chrome);
- if (Sys.opera) document.write(‘Opera: ‘ + Sys.opera);
- if (Sys.safari) document.write(‘Safari: ‘ + Sys.safari);
- });
$(function () { var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] : (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0; if (Sys.ie) document.write(‘IE: ‘ + Sys.ie); if (Sys.firefox) document.write(‘Firefox: ‘ + Sys.firefox); if (Sys.chrome) document.write(‘Chrome: ‘ + Sys.chrome); if (Sys.opera) document.write(‘Opera: ‘ + Sys.opera); if (Sys.safari) document.write(‘Safari: ‘ + Sys.safari); });
不过这样判断虽然简单,但是代码质量不是很好,总要通过操作DOM来修改样式,如果有别的简单方法可以先考虑其他的方法,实在不行在使用。
时间: 2024-09-30 18:50:48