Javascript 中有时候需要根据浏览器的类型做不同的操作
比如XML DOM中的nextSibling在IE和非IE中的取得值就不同
因此需要先判断browser的类型 然后写不同代码
言归正传:
使用 Navigator这个JS对象 获取浏览器的信息
if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0))
{
is_IE_browser = true;}
else if (navigator.userAgent.indexOf('Firefox') >= 0)
{
is_Firefox_browser = true; }
else if (navigator.userAgent.indexOf('Chrome') >= 0)
{
is_Chrome_browser = true ; }
关于这个对象具体信息 参考 http://www.w3school.com.cn/jsref/dom_obj_navigator.asp
userAgent这个用户请求代理的数据头
比如IE9的请求是
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
里面有MSIE的字符串作为判断标识
百度首页是这么判断的
var c=(navigator&&navigator.userAgent)?navigator.userAgent:"";
//var b=(document&&document.cookie)?document.cookie:"";
var a=!!(c.match(/(msie [2-8])/i)||(c.match(/windows.*safari/i)&&!c.match(/chrome/i))||c.match(/(linux.*firefox)/i)||c.match(/Chrome\/29/i)||c.match(/mac os x.*firefox/i)
当然还有号称 最短的IE浏览器判断代码
<script type="text/javascript">
var ie = !-[1,];
alert(ie);
</script>
利用了IE与标准浏览器在处理数组的toString方法的差异做成的 不过在IE9的兼容模式测试不通过 不知道是不是有修改了
比如XML DOM中的nextSibling在IE和非IE中的取得值就不同
因此需要先判断browser的类型 然后写不同代码
言归正传:
使用 Navigator这个JS对象 获取浏览器的信息
if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0))
{
is_IE_browser = true;}
else if (navigator.userAgent.indexOf('Firefox') >= 0)
{
is_Firefox_browser = true; }
else if (navigator.userAgent.indexOf('Chrome') >= 0)
{
is_Chrome_browser = true ; }
关于这个对象具体信息 参考 http://www.w3school.com.cn/jsref/dom_obj_navigator.asp
userAgent这个用户请求代理的数据头
比如IE9的请求是
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
里面有MSIE的字符串作为判断标识
百度首页是这么判断的
var c=(navigator&&navigator.userAgent)?navigator.userAgent:"";
//var b=(document&&document.cookie)?document.cookie:"";
var a=!!(c.match(/(msie [2-8])/i)||(c.match(/windows.*safari/i)&&!c.match(/chrome/i))||c.match(/(linux.*firefox)/i)||c.match(/Chrome\/29/i)||c.match(/mac os x.*firefox/i)
当然还有号称 最短的IE浏览器判断代码
<script type="text/javascript">
var ie = !-[1,];
alert(ie);
</script>
利用了IE与标准浏览器在处理数组的toString方法的差异做成的 不过在IE9的兼容模式测试不通过 不知道是不是有修改了