【问题标题】:JS conditional working on Chrome but not on FirefoxJS 有条件地在 Chrome 上工作,但在 Firefox 上不工作
【发布时间】:2014-09-20 14:00:29
【问题描述】:

我正在制作一个基本的网络应用程序(请注意新手级别),一种文本编辑器。无论如何,使用 localStorage 我保存了文本、字体大小和字体系列。 所有这些都有效,没问题。但是,我有一个按钮可以在无衬线和衬线之间切换,当文本为衬线时,只会出现无衬线按钮,当然,反之亦然。这也有效,但由于某种原因,它在使用下面的条件的 Firefox 中不起作用。在 Chrome 中运行良好,这很奇怪。

我使用了两个 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";
    }
}

【问题讨论】:

  • 您是否尝试过控制台记录您在 if 测试中测试的值?
  • 是的,在 ff 上:""Exo 2","Helvetica Neue",Helvetica,Arial,sans-serif" on chrome: Lora, Georgia, 'Times New Roman', serif
  • 所以您所说的记录的是与您测试的字符串文字匹配的值,这就是它总是转到 else 语句的原因。
  • 是的,但为什么 FF 返回不同的值?这就是我不明白的......我期待在 IE 中像这样兴...但是 FF?

标签: javascript firefox local-storage conditional


【解决方案1】:

所以问题可能出在双引号/单引号中?在我看来,如果字符串中有 'sans-serif',在这种情况下最好使用正则表达式测试。

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

【讨论】:

    猜你喜欢
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2016-02-10
    • 1970-01-01
    相关资源
    最近更新 更多