javascript与浏览器版本

1.JScript条件编译
微软特立独行的JScript和原生的Javascript其实有很多不同点,利用条件编译,可以很方便的区别JScript和Javascript。废话不多,直接上代码

/*@cc_on
    alert("IE中可见");
@*/
这段代码在IE中会弹出对话框;

/*@cc_on
@if ( @_jscript )
    alert("IE中可见");
@else @*/
    alert("其他浏览器中可见");
/*@end @*/
这段代码可在对话框中显示你使用的是IE还是非IE

/*@cc_on
    alert(@_jscript_version);
@*/
这段代码会弹出你的JScript版本号。其中对应关系为:IE10=10,IE9=9,IE8=5.8,IE7=5.7,IE6=5.6或5.7,IE5.5=5.5

当用户为Windows XP安装了JScript5.7补丁后,IE6的@_jscript_version可能为5.7,而不是5.6,这一点与IETester不同。
条件编译在所有你见过的IE版本下均通用。


2.IE的quirks模式。
当HTML中没有声明DOCTYPE时,IE会自动工作在“quirks”模式下,即一种类似IE5渲染方法的模式。当使用IE6及以上版本时,我们可以使用document.compatMode来进行识别这一模式。

alert(document.compatMode);
怪癖模式下弹出“BackCompat”,正常模式下弹出“CSS1Compat”


3.浏览器兼容模式
IE8及其以上版本的浏览器为用户提供了浏览器兼容性视图,即用户在浏览网页时如果页面不能正常显示,可以尝试以低版本IE的模式下工作。从IE8开始,我们可以使用document.documentMode来获取当前模式。
我们可以写这样一段代码:alert(document.documentMode); 在IE中打开,然后再开发者工具中切换“浏览器模式”来查看效果。
通过实验我们可以发现,IE在正常模式下,弹出当前版本号,是个整数,兼容模式下,弹出所兼容的版本号,,怪癖模式下弹出“5”.


4.综合运用
将上述方法综合起来,我们就可以完全识别IE的版本了。

/*@cc_on
var mode = document.documentMode || (document.compatMode == "CSS1Compat" ? @_jscript_version==5.7 ? "XMLHttpRequest" in window ? 7 : 6 : @_jscript_version * 10 - 50 : 5);
alert(mode);
@*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值