【问题标题】:spellcheck=false on contentEditable elements对 contentEditable 元素的 spellcheck=false
【发布时间】:2011-08-01 20:48:26
【问题描述】:

对于普通输入元素,您可以turn off 使用 HTML 属性(至少在 FF 下)进行拼写检查。相同的 spellcheck="false" 似乎不适用于 contentEditable 元素。 contentEditable 元素还有其他解决方案吗?

【问题讨论】:

    标签: html spell-checking contenteditable


    【解决方案1】:

    在 Gecko 中,所有 contenteditable 元素都根据 <body> 元素上的 spellcheck 属性/属性检查拼写。

    【讨论】:

    • 在 FF4 的干净(只是 Firebug)安装中,它似乎对我不起作用。至少当我通过 Firebug 设置它时。
    • data:text/html,<div contenteditable>Fe Fi Fo Fum 向我显示拼写错误。 data:text/html,<body spellcheck=false><div contenteditable>Fe Fi Fo Fum 没有。
    【解决方案2】:

    即使不考虑浏览器错误,您也无法关闭拼写检查,您所能做的就是向用户代理建议它不进行拼写检查。如果您查看section of the spec,它描述了用于确定可拼写检查的算法,这里是前两个步骤:

    1. 如果用户禁用了对该文本的检查,则检查将被禁用。
    2. 否则,如果用户强制始终启用检查此文本,则启用检查。

    用户偏好总是覆盖属性。

    【讨论】:

      【解决方案3】:

      我不确定这是否是您的意思,但我在从 contentEditable 元素中删除拼写检查下划线时遇到了类似的问题。问题是,当您将 spellcheck 属性设置为 false 时,任何因拼写错误而下划线的单词都会保留该下划线,直到您将注意力集中在 contentEditable 元素上。

      以下 hack 应该可以解决问题:

      element.spellcheck = false;
      element.focus();
      element.blur();
      

      希望有帮助!

      【讨论】:

        【解决方案4】:

        根据尼尔所说,我想出了这个人:

        $('body').attr("spellcheck",false)
        

        它默认我所有的 contenteditable div 不使用拼写检查。我计划在必要时使用 .blur 和 .focus 来为单个 div 启用拼写检查。

        【讨论】:

        • 如此简单的事情不需要 jQuery:document.body.setAttribute('spellcheck', false);
        猜你喜欢
        • 2017-05-05
        • 2019-05-26
        • 2022-01-11
        • 1970-01-01
        • 2022-07-08
        • 1970-01-01
        • 2014-03-10
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多