2013-02-23 73 views
2

這個問題很簡單,但我想問一問。如果不是Opera Mini

此代碼告訴我們,用戶的瀏覽器是一個著名的Opera Mini的

var isOperaMini = (navigator.userAgent.indexOf('Opera Mini') > -1); 

這樣我就可以這樣使用它:

if (navigator.userAgent.indexOf('Opera Mini') > -1) 
    alert('hey! your browser is buggy'); 

這是if Opera Mini, then條件。

如何製作右邊短條件爲?

我不知道該如何玩-1整數。

+0

其實,這代碼只告訴你,在用戶代理頭中傳遞包含'歌劇Mini'。 – Oded 2013-02-23 20:53:04

+0

http://en.wikipedia.org/wiki/%3F:#JavaScript – RGdev 2013-02-23 20:54:22

+1

哇,_please_不用三元運算符實現布爾否定。 – Eevee 2013-02-23 20:59:55

回答

3

你可以簡單地將其更改爲

if (navigator.userAgent.indexOf('Opera Mini') == -1) 

,將返回true,如果它不能在用戶代理字符串,找到「Opera Mini的」

+0

它會在Opera Mini中返回'true' ** only **嗎? – Jasper 2013-02-23 20:55:23

+0

@Steve - 如果用戶代理不包含「Opera Mini」,它將返回true。看起來你真的需要閱讀['indexOf'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/indexOf)。 – Oded 2013-02-23 20:59:19

0

使用~運營商的另一個選項(可能的可讀性):

if (~navigator.userAgent.indexOf('Opera Mini')) { 
    // opera mini 
} 

if (!~navigator.userAgent.indexOf('Opera Mini')) { 
    // not opera mini 
} 

但是它可能更好地爲您與-1比較,直到您熟悉的語法。

+0

有人不同意?註釋? – dfsq 2013-03-21 10:40:31

3

Opera doc

檢測的Opera Mini: 2的方法:您可以:

  1. 檢查用戶代理字符串

  2. 檢查的存在operamini object

即如果沒有的Opera Mini是:

if (!window.operamini){}

短,方便,可靠。與可欺騙的用戶代理不同。