2014-09-20 44 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 { 
    //... 
} 
相关问题