2013-07-29 61 views
1

非Webkit Opera在某些功能中爲very specific,所以通常通過JavaScript the following way檢測到。如何通過JavaScript檢測舊Opera(非Webkit,非Next,版本14-)

但是,Opera Next幾乎滲透到Google Chrome克隆中。

我該如何定位舊的Opera而不是將目標定位在Opera Next? PS:我真的知道,瀏覽器檢測吸收和功能檢測規則。但我希望通過一個小型的瀏覽器檢測補丁程序來更新大型和正在運行的項目,而不是將大量代碼重寫爲特徵檢測範例。

回答

2

我發現問題來源。在該項目中,瀏覽器檢測結果不佳。如果您在the link given in the question中完全檢測到Opera,則Opera Next未檢測爲Opera,因此不會執行舊Opera特定的代碼,而是運行Chrome特定代碼。

!!window.opera;      // true in old Opera, false in Opera Next 

navigator.userAgent.indexOf("Opera");// ------- the same -------- 

PS:還好,我有很多我的項目的測試,所以我可以告訴大家,在新歌劇的東西正好擔任谷歌瀏覽器。

一段代碼引起的問題試圖檢測舊歌劇院和Opera下一頁:

/(Opera|OPR)/.test(navigator.userAgent) 

結論:歌劇遷移做的非常好,沒有什麼應該在你的項目中打破。不要檢測Opera Next,只需像往常一樣對待Google Chrome即可。

更新:以前的Opera版本已經從caniuse.com去除了