zoukankan      html  css  js  c++  java
  • 用js识别是否360浏览器

    360浏览器说实话比较恶,以前可以通过内核返回的字符串判定是否包含"360"字样的方法来判定

    如以下代码

         window.navigator.userAgent.indexOf('360')!=-1

    但360浏览器某次更新后,内核显示的字符串已经和IE浏览器是一样的了,导致无法判断是IE还是360。但有人又说了,既然是一样IE的内核,不需要单独判定是不是360的,我说这些人站着说话不腰疼,不知道他们有没有编写过一些代码,发现在IE和360浏览器的表现行为是不一样的。因此,这个判断还是有必要的,后面大家都出了一些偏门的方法,比如 写js去加载这个图片'res://360se.exe/2/2025',我不知道如果加载不了这个图片,是不是一直会挂在那里,我是懒得去试这种方法。

    下面我看了下 window.navigator的成员集合,想想应该这么多成员集合,360不会都实现了吧?结果最后终于发现了一些区别,下面给出我的判断代码。

     
     
    1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    3.   
    4. <html>  
    5.   <head>  
    6.     <base >  
    7.       
    8.     <title></title>  
    9.     
    10.     <script>  
    11.         function bro(){  
    12.             var is360 = false;  
    13.             var isIE = false;  
    14.             if (window.navigator.appName.indexOf("Microsoft") != -1){  
    15.                 isIE= true;  
    16.             }  
    17.             if(isIE&&(window.navigator.userProfile+'')=='null'){  
    18.                 is360 = true;  
    19.             }  
    20.             if(is360){  
    21.                 document.body.innerText = '360浏览器';  
    22.             }else if(isIE){  
    23.                 document.body.innerText = 'IE浏览器';  
    24.             }  
    25.         }  
    26.     </script>  
    27.   </head>  
    28.     
    29.   <body onload="bro();">  
    30.      
    31.   </body>  
    32. </html>  
    33.           


    注意不要忘了这句话,不然你的执行结果是不会对的。

     
     
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   

    以上方法我已经在项目中使用了,效果还行。

     


    PS:以上是好久以前写的,现在已经没用了,现在360浏览器6.3版本,是跟Chrome浏览器内核一样了,不是和之前的IE内核,360真是变来变去,以下是现在修改的代码(2014年5月30日写)

     

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     
    2.     
    3. <html>    
    4.   <head>    
    5.     <base >    
    6.         
    7.     <title></title>    
    8.       
    9.     <script>    
    10.         function bro(){    
    11.             var is360 = false;    
    12.             var isIE = false;    
    13.             var isFirefox = false;  
    14.             var isCrome = false;  
    15.             var broName = '';  
    16.             if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){  
    17.                 isIE = true;  
    18.                 broName = 'IE';  
    19.             }  
    20.             if(window.navigator.userAgent.indexOf('Firefox')!=-1){  
    21.                 isFirefox = true;  
    22.                 broName = 'Firefox';  
    23.             }  
    24.             if(window.navigator.userAgent.indexOf('Chrome')!=-1){  
    25.                 if(window.navigator.webkitPersistentStorage){  
    26.                     isCrome = true;  
    27.                     broName = 'Chrome';  
    28.                 }else{  
    29.                     is360 = true;  
    30.                     broName = '360';  
    31.                 }  
    32.             }  
    33.   
    34.             document.getElementById('broType').value=broName;  
    35.   
    36.         }    
    37.     </script>    
    38.   </head>    
    39.       
    40.   <body onload="bro();">    
    41.      <input type="text" id="broType" name="broType">  
    42.   </body>    
    43. </html>    


    现在请用最新的方法来判定。

  • 相关阅读:
    关于cookie的一点知识
    一点简单的关于ASP.NET下载
    一个小小小问题
    复习linq
    拾遗一些关于存储过程
    一般处理程序(下)
    复习一下递归
    复习JS和jQuery
    一点关于Ajax和一个等待图标的显示
    C#开发BIMFACE系列14 服务端API之批量获取转换状态详情
  • 原文地址:https://www.cnblogs.com/goody9807/p/4528056.html
Copyright © 2011-2022 走看看