2014-09-20 7 views
0

저는 일종의 텍스트 편집기 인 기본 웹 응용 프로그램 (신참 수준의 마음이 있습니다)을 만들고 있습니다. 어쨌든 localStorage를 사용하여 텍스트, 글꼴 크기 및 글꼴 군을 저장합니다. 이 모든 작업이 가능합니다. 그러나 산세 리프와 세리프 사이를 전환하는 버튼이 있습니다. 텍스트가 세리프 상태에있을 때만 산 세리프 버튼이 나타나고 당연히 그 반대입니다. 이것도 작동하지만, 아래의 조건을 사용하여 Firefox에서 작동하지 않습니다. 크롬에서는 문제가 없습니다.크롬에서는 조건부로 작동하지만 Firefox에서는 작동하지 않습니다.

두 개의 console.log를 사용하여 어떤 일이 일어나고 어떤 상황이 발생했는지 확인하기 위해 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

if 테스트에서 테스트중인 값을 콘솔에 기록하려고 했습니까? – nnnnnn

+0

예, ff : "Exo 2", "Helvetica Neue", Helvetica, Arial, sans-serif " 크롬 : Georgia, Lora, 'Times New Roman', serif – nakkeru

+0

기록 된 내용은 다음과 같습니다. 값은 테스트 할 문자열 리터럴과 일치하지 않으므로 항상 else 문으로 이동합니다. – nnnnnn

답변

0

이중/작은 따옴표에 문제가있을 수 있습니까? 이 경우 문자열에 'sans-serif'가 있으면 regexp 테스트를 사용하는 것이 좋습니다.

if(/sans-serif/.test(window.localStorage.getItem('storedFontFamily'))) { 
    //... 
} else { 
    //... 
} 
관련 문제