2

我有這個JavaScript函數應該在Chrome中打開一個不同的div比在其他瀏覽器。正確的div在Firefox,Internet Explorer,safari和chrome中打開,但opera會打開chrome div而不是其他div。有沒有辦法阻止歌劇執行鉻功能?區分鉻和歌劇

 function Browser() { 
    var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 

     if (is_chrome) { 
     document.getElementById('chrome').style.display = 'block'; 
     document.getElementById('notchrome').style.display = 'none'; 
} 
    } 
+1

你看過用於opera和chrome的用戶代理字符串嗎?也許你可以在那裏找到一些東西 – becquerel

+3

你需要什麼divs?瀏覽器檢測受到鄙視。另外,如果你有最新的基於Blink的Opera,可以將其識別爲Chrome :-) – Bergi

+0

你是否想要一款只針對歌劇的CSS黑客?設置顯示:無? – albert

回答

3

如果您在這裏閱讀,您可以看到您可以查找OPR字符串以識別Opera。

http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond

例如,您可以將其包含在您的測試是這樣的:

var userAgent = navigator.userAgent.toLowerCase(); 
var is_chrome = userAgent.indexOf('chrome') > -1 && userAgent.indexOf('opr/') == -1; 
+0

我該如何使用它? – user2856593

+0

我用代碼示例編輯了我的答案 – becquerel

0

沒有冒犯你。但是,我認爲,如果你檢查它是否只是chrome而不是opera,那麼會在用chrome平臺構建的其他自定義瀏覽器中失效。例如中文QQ瀏覽器。

相反,您可以檢查用戶代理是否包含「Chrome」,並且navigator.vendor包含「Google Inc.」這給你精確的鉻。 !

VAR isChrome = navigator.userAgent.toLowerCase()搜索( '鉻')= -1 & & navigator.vendor.toLowerCase()搜索( '谷歌')= -1。!;

我使用toLowerCase()來保持事物的乾淨和微妙。