2012-12-27 43 views
-1

對於一個下載鏈接的橫幅我希望有條件地添加更多然後1個鏈接選擇的鏈接取決於所使用的瀏覽器

如果用戶在Internet Explorer中,它會顯示下載鏈接的Internet Explorer 而如果用戶使用谷歌瀏覽器或Safari瀏覽器應該顯示該瀏覽器的鏈接

+0

查找瀏覽器/ UA嗅探。 –

+1

搜索「JavaScript瀏覽器檢測」 - 應該有足夠的資源。 –

回答

2
navigator.sayswho= (function(){ 
    var N= navigator.appName, ua= navigator.userAgent, tem; 
    var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i); 
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1]; 
    M= M? [M[1], M[2]]: [N, navigator.appVersion, '-?']; 

    return M; 
})(); 

這不是我的!它被張貼@kennebec在此的其他問題: jQuery browser detection?

+2

由於OP沒有指定jQuery,我們可能不應該假設他想要使用它。 –

+0

好的,檢查這一個然後,它是純粹的JS:http://stackoverflow.com/questions/5916900/detect-version-of-browser – theMarceloR

+1

折騰直接進入你的答案,你有我的upvote –

3

使用此獲得瀏覽器信息在PHP中:

$info = get_browser(null, true); 

它會返回一個數組與瀏覽器的信息。您可以使用該信息從服務器端構建適當的鏈接。有關詳細信息,請參閱文檔:http://php.net/manual/en/function.get-browser.php

+0

有什麼限制這個?在我看來,如果瀏覽器嗅探服務器端無法高效工作。 –

+0

@Zach L它和客戶端瀏覽器嗅探一樣糟糕,因爲它依賴於瀏覽器使用HTTP標頭髮送的信息。這根本不可靠 - 正如任何瀏覽器嗅探技術一樣。例如,Opera有一個按鈕可以切換爲應該將自己標識爲服務器的瀏覽器;一些客戶也一次發送多個瀏覽器的腳印。 – feeela

+0

用戶代理標題總是可以被欺騙,這就是限制。 – bfavaretto

2

如果要檢測Internet Explorer,則必須閱讀有關conditional comments。你根本不需要Javascript。

你可以寫:

<!--[if IE]> 
<a href="ielink">some text</a> 
<![endif]--> 

<!--[if !IE]> --> 
<a href="otherlink">some text</a> 
<!-- <![endif]--> 
+4

uhmmm,這將檢測Internet Explorer,但多數民衆贊成,除非我困惑。 –

+1

很好的說明! –

+1

Oohhh,但你的'if!IE'語法看起來不對。應該是' ... <! - ' –