文章出處

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>    


現在請用最新的方法來判定。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()