亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

谷歌瀏覽器返回的版本信息中,既有Chorme又有Safari字符串值,

if(u_agent.indexOf("Firefox")>-1) 如果把 Firefox 改成Safari,瀏覽器名就會變成了Firefox而不是Chorme 了。像這種瀏覽器版本信息中字符串值有重合的,for循環返回的瀏覽器名還準確嗎?

正在回答

2 回答

navigator的信息可以很容易地被用戶修改,所以JavaScript讀取的值不一定是正確的。初學者為了針對不同瀏覽器編寫不同的代碼,喜歡用if判斷瀏覽器版本,例如:

var width;
if (getIEVersion(navigator.userAgent) < 9) { ? ?width = document.body.clientWidth;
} else { ? ?width = window.innerWidth;
}

但這樣既可能判斷不準確,也很難維護代碼。正確的方法是充分利用JavaScript對不存在屬性返回undefined的特性,直接用短路運算符||計算:

var width = window.innerWidth || document.body.clientWidth;


1 回復 有任何疑惑可以回復我~
#1

weibo_健桑愛吐槽_03638347

那返回的數字是啥意思,比如說我剛用360試了一下,返回的是370,表示啥
2016-08-18 回復 有任何疑惑可以回復我~

首先,問題的初衷是為了知道是那種瀏覽器。所以,為什么會去改動返回的內容呢?(沒意義),

然后不同瀏覽器返回的結果是不一樣的,為什么GOOGLE瀏覽器返回的會有safi的標識呢?

就是一個瀏覽器標識而已。是因為chrome模仿蘋果WebKit標識讓網站識別以獲得訪問更加精湛的頁面。雖然帶有apple,但蘋果本身份額很小。chrome里面的APPLEWebKit標識一直沒去掉。WebKit是Mac OS X v10.3及以上版本所包含的軟件框架(對v10.2.7及以上版本也可通過軟件更新獲?。?。同時,WebKit也是Mac OS X的Safari網頁瀏覽器的基礎。WebKit是一個開源項目,主要由KDE的KHTML修改而來并且包含了一些來自蘋果公司的一些組件。

不同瀏覽器返回的結果如下(所以返回的結果判斷還是準確的):

IE(8-10)

u_agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)


Chrome

u_agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36


Chrome(115瀏覽器,內核也是Chrome的)

u_agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36


Safari

u_agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2


5 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

谷歌瀏覽器返回的版本信息中,既有Chorme又有Safari字符串值,

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號