js判断是不是是IE浏览器的几种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js判断是不是是IE浏览器的几种方法相关的知识,希望对你有一定的参考价值。

前几天在网上看到一个技术牛人写的世界上判断是否IE浏览器之最短的js代码,如下:<scriptif(!+[1,])alert(这是ie浏览器);
   else alert(这不是ie浏览器);
</script
其实有很多判断的方法,大都是根据浏览器的特性来的。
比如库prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是根据ie支持window.attachEvent添加侦听事件,非ie用window.addEventListener添加侦听事件来判断的。navigator.userAgent.indexOf('Opera') === -1是因为opara浏览器能伪装成ie.如果!!(window.attachEvent )为真,就是ie;反之,如果!window.addEventListener为真,也可以判断为ie.
Ext使用的是!1[0],他利用IE无法使用数组下标访问字符串的特性来判断。在ie8下好像有问题。
在!+[1,]还未被发现前,判断ie最短的表达式是 !+\v1.它利用的是ie不支持垂直制表符的特性。
以前还有一个常用方法是document.all,由于opera浏览器能伪装成ie。可以这样写:!!(document.all && navigator.userAgent.indexOf('Opera') === -1).
还有很多,先记这几条,便于工作时查阅。
1.+[1,]
2.!+\v1
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)
参考技术A 第一种: 
if(window.addEventListener)  
        alert("not ie");   
    else if(window.attachEvent)   
        alert("is ie");   
    else   
        alert("这种情况发生在不支持Dhtml的老版本浏览器(现在一般都支持)")   
       
if(window.addEventListener) 
                alert("not ie"); 
        else if(window.attachEvent) 
                alert("is ie"); 
        else 
                alert("这种情况发生在不支持DHTML的老版本浏览器(现在一般都支持)") 
         
第二种: 
if(document.all)  
    alert("IE6");   
    else   
    alert("not ie");   
       
if(document.all) 
        alert("IE6"); 
        else 
        alert("not ie"); 
         

第三种: 
var navigatorName = "Microsoft Internet Explorer";  
   var isIE = false;   
   if( navigator.appName == navigatorName )   
    isIE = true;   
        alert("ie")   
   else   
    alert("not ie")   
      
var navigatorName = "Microsoft Internet Explorer"; 
   var isIE = false; 
   if( navigator.appName == navigatorName ) 
    isIE = true; 
                alert("ie") 
   else 
        alert("not ie") 
    
第四种: 
if(!+[1,])alert("这是ie浏览器");   
   else alert("这不是ie浏览器");

参考技术B 前几天在网上看到一个技术牛人写的世界上判断是否IE浏览器之最短的js代码,如下:<scriptif(!+[1,])alert(这是ie浏览器);
   else alert(这不是ie浏览器);
</script
其实有很多判断的方法,大都是根据浏览器的特性来的。
比如库prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是根据ie支持window.attachEvent添加侦听事件,非ie用window.addEventListener添加侦听事件来判断的。navigator.userAgent.indexOf('Opera') === -1是因为opara浏览器能伪装成ie.如果!!(window.attachEvent )为真,就是ie;反之,如果!window.addEventListener为真,也可以判断为ie.
Ext使用的是!1[0],他利用IE无法使用数组下标访问字符串的特性来判断。在ie8下好像有问题。
在!+[1,]还未被发现前,判断ie最短的表达式是 !+\v1.它利用的是ie不支持垂直制表符的特性。
以前还有一个常用方法是document.all,由于opera浏览器能伪装成ie。可以这样写:!!(document.all && navigator.userAgent.indexOf('Opera') === -1).
还有很多,先记这几条,便于工作时查阅。
1.+[1,]
2.!+\v1
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)

js中 json对象与json字符串相互转换的几种方式

以下总结js中 json对象与json字符串相互转换的几种方式:

一、JSON对象转化为JSON字符串

1.使用JSON.stringify()方法进行转换

该方法不支持较老版本的IE浏览器,比如:ie8(兼容模式)、ie7、ie6。

var jsonStr = JSON.stringify(jsonObj);
alert(jsonStr);
var jsonStr = jsonObj.toJSONString();
alert(jsonStr);

 

 

二、JSON字符串转化为JSON对象

1.使用eval()函数进行转换

使用 eval() 转换时需要在 json 字符外包裹一对小括号。

ie8(兼容模式)、ie7、ie6 不要使用此方法。

var jsonObj = eval(\'(\' + jsonStr + \')\');
alert(jsonObj[0]["key"]);

2.使用JSON.parse()方法进行转换

ie8(兼容模式)、ie7、ie6 不要使用此方法。

var jsonObj = JSON.parse(jsonStr);

3.使用jQuery进行转换

如果我们项目中有使用 jQuery,那么直接使用 $.parseJSON() 方法即可,而且可以确保各个浏览器的兼容性。

var jsonObj = $.parseJSON(jsonStr);

 

以后有需要再进行扩充

 

原文:https://www.cnblogs.com/houchen/p/11198457.html

以上是关于js判断是不是是IE浏览器的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

火狐浏览器如何js关闭窗口的几种解决方法

火狐浏览器如何js关闭窗口的几种解决方法

js数组去重的几种方法

js中 json对象与json字符串相互转换的几种方式

如何用html判断浏览器内核

如何判断浏览器是不是是IE11