2014-09-20 84 views
0

我正在製作一個基本的網絡應用程序(新手級別介意你),這是一個各種文本編輯器。無論如何,使用localStorage我保存文本,字體大小和字體家族。 所有這些工作,沒有問題。但是,我有一個按鈕可以在sans-serif和serif之間切換,並且當文本是serif時,只有sans-serif按鈕纔會出現,當然,反之亦然。這也適用,但由於某些原因,它在Firefox中使用下面的條件不起作用。在Chrome中工作正常,這是奇怪的事情。JS有條件工作在Chrome上但不在Firefox上

我使用了兩個console.logs來查看會發生什麼,無論如何,Firefox總是對「else」語句感到厭倦。

任何想法?

謝謝!

function fontButton() { 
    if (window.localStorage.getItem('storedFontFamily') == "'Exo 2', 'Helvetica Neue', Helvetica, Arial, sans-serif" || editor.style.fontFamily == "'Exo 2', 'Helvetica Neue', Helvetica, Arial, sans-serif") { 
     console.log("if statement"); 
     sansSerifFont.style.display = "none"; 
     serifFont.style.display = "inline-block"; 
    } else { 
     console.log("else statement"); 
     serifFont.style.display = "none"; 
     sansSerifFont.style.display = "inline-block"; 
    } 
} 
+0

您是否嘗試過控制檯日誌記錄您在測試中測試的值? – nnnnnn 2014-09-20 14:12:44

+0

是的,在ff上:「」Exo 2「,」Helvetica Neue「,Helvetica,Arial,sans-serif」 on chrome:Lora,Georgia,'Times New Roman',襯線 – nakkeru 2014-09-20 14:19:29

+0

所以,你所說的是記錄的值_not_不匹配你測試的字符串文字,所以這就是爲什麼它總是要去else語句。 – nnnnnn 2014-09-21 14:06:00

回答

0

所以也許問題是在雙/單引號?在我看來,如果字符串中有'sans-serif',在這種情況下最好使用正則表達式測試。

if(/sans-serif/.test(window.localStorage.getItem('storedFontFamily'))) { 
    //... 
} else { 
    //... 
} 
相關問題