2013-02-15 55 views
0

我正在使用javascript來查看設備像素比率的cookie。在IE瀏覽器的像素比例輸出不確定的,所以我想用一個有條件地說,如果沒有定義設定爲1設備像素比例undefined

我一直在嘗試幾種不同的方法,但認爲這會工作:

<script> 
        if (window.devicePixelRatio==undefined) { 
         document.cookie='screenpixelratio='1'; path=/';location.reload(true); 
        } else { 
         document.cookie='screenpixelratio='+window.devicePixelRatio+'; path=/';location.reload(true); 
        } 
       </script> 

但是,我不能得到它輸出1.

有誰知道我能做到這一點?

+2

你確定「1」應該引號內去? – PaulJ 2013-02-15 14:40:52

+0

@PaulJ:這是一個答案。它甚至可以是*答案。 :-) – 2013-02-15 14:44:00

回答

1

PaulJ指出,在對您的代碼中有一個語法錯誤問題的意見:

document.cookie='screenpixelratio='1'; path=/';location.reload(true); 
// Here --------------------------^ 

'終止字符串,因此1在該點無效令牌。你大概的意思是:

document.cookie='screenpixelratio=1; path=/';location.reload(true); 

如果這不是它,我原來的答案是:

I'd've認爲會的工作,但是這可能會更好地工作:

if (typeof window.devicePixelRatio === "undefined") { 

技術上,有可能是undefined,但與您用來比較的undefined不一樣,但這通常僅適用於跨窗口情況。

或者,這可能會得到更直接的點(找出是否有一個devicePixelRatio財產上window):

if (!('devicePixelRatio' in window)) { 
+1

@囚徒:「我是」是完全有效的收縮。 – 2013-02-15 14:41:38

+0

從來沒有見過我以前寫過,所以我不得不去檢查它。 http://english.stackexchange.com/questions/689/is-idve-proper-use-of-the-english-language - 在虛構中似乎沒問題,但在正式寫作中沒有問題。我真的在乎什麼:) – Prisoner 2013-02-15 14:42:04

+0

@Prisoner:你必須考慮誰在english.stackexchange.com掛出並回答問題...... ;-) – 2013-02-15 14:47:20