文章出處
文章列表
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不會都實現了吧?結果最后終于發現了一些區別,下面給出我的判斷代碼。
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <base >
- <title></title>
- <script>
- function bro(){
- var is360 = false;
- var isIE = false;
- if (window.navigator.appName.indexOf("Microsoft") != -1){
- isIE= true;
- }
- if(isIE&&(window.navigator.userProfile+'')=='null'){
- is360 = true;
- }
- if(is360){
- document.body.innerText = '360瀏覽器';
- }else if(isIE){
- document.body.innerText = 'IE瀏覽器';
- }
- }
- </script>
- </head>
- <body onload="bro();">
- </body>
- </html>
注意不要忘了這句話,不然你的執行結果是不會對的。
- <!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日寫)
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <base >
- <title></title>
- <script>
- function bro(){
- var is360 = false;
- var isIE = false;
- var isFirefox = false;
- var isCrome = false;
- var broName = '';
- if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){
- isIE = true;
- broName = 'IE';
- }
- if(window.navigator.userAgent.indexOf('Firefox')!=-1){
- isFirefox = true;
- broName = 'Firefox';
- }
- if(window.navigator.userAgent.indexOf('Chrome')!=-1){
- if(window.navigator.webkitPersistentStorage){
- isCrome = true;
- broName = 'Chrome';
- }else{
- is360 = true;
- broName = '360';
- }
- }
- document.getElementById('broType').value=broName;
- }
- </script>
- </head>
- <body onload="bro();">
- <input type="text" id="broType" name="broType">
- </body>
- </html>
現在請用最新的方法來判定。
文章列表
全站熱搜