• 用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>    


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

  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/goody9807/p/4528056.html
Copyright © 2020-2023  润新知