Javascript 如何对页面上的所有文本启用拼写检查?

Javascript 如何对页面上的所有文本启用拼写检查?,javascript,jquery,html,Javascript,Jquery,Html,有没有办法对页面上的所有文本启用拼写检查 我是说,即使文本不可编辑 我做了一些搜索,找到了一种在可编辑文本上停用它的方法。但无法在不可编辑的文本上激活它 我还看到,如果我们激活contenteditable,然后用contenteditable属性单击div,然后我们出去,带下划线的文本保持带下划线(即使我们用javascript删除contenteditable属性)。从W3.org HTML: 用户代理必须只考虑下面的文本 出于此功能的目的,可检查: 输入元素的值,其类型属性位于文本、搜索

有没有办法对页面上的所有文本启用拼写检查

我是说,即使文本不可编辑

我做了一些搜索,找到了一种在可编辑文本上停用它的方法。但无法在不可编辑的文本上激活它

我还看到,如果我们激活
contenteditable
,然后用
contenteditable
属性单击div,然后我们出去,带下划线的文本保持带下划线(即使我们用javascript删除
contenteditable
属性)。

从W3.org HTML:

<>用户代理必须只考虑下面的文本 出于此功能的目的,可检查:

  • 输入元素的值,其类型属性位于文本、搜索、URL或电子邮件状态中,并且是可变的(即未指定只读属性且未禁用)
  • 没有只读属性且未禁用的textarea元素的值
  • 文本节点中的文本是编辑主体或可编辑元素的子节点
  • 可编辑元素属性中的文本

任何不属于这一类别的内容都不能标记为
拼写检查属性,但我确信有一些Javascript项目可以满足您对拼写检查静态
div
元素的需要。

这个答案有点晚,但如果您不介意暂时将页面设置为可编辑,您可以执行以下操作:

<body contenteditable="true" spellcheck="true">
    <!-- content -->
</body>

我在测试环境中执行此操作,并在最终测试期间删除
contenteditable=“true”spellcheck=“true”
,然后将工作转移到生产环境中

一些注意事项:
1) 在Firefox中无法正常工作(我改用Chromium)。

2) 在许多情况下,您必须在拼写检查之前单击元素。

到目前为止,您尝试了哪些方法来解决此问题?将代码的相关部分粘贴到此处,并解释其不起作用的原因(即,您期望它做什么以及它实际做什么)。我尝试在所有包含文本的div上添加拼写检查=“true”,但它不起作用。这不是已经是您的解决方法了吗?我还看到,如果我们激活contenteditable,然后单击contenteditable div,然后我们出去,带下划线的文本保持带下划线(即使我们删除contenteditable属性(使用js))如果删除该属性,用户将无法再对其进行编辑。该属性在Chrome中适用于我35@Spokey:这是一个很好的技巧:)我很惊讶它能起作用!这很有趣。也许一个解决办法是使用一个启用的textarea(样式化)和一个较低的z索引,并添加一个覆盖?@StaticVoid它可能会工作,但它离最佳实践还有几英里远。它可以在div上工作。。jsfiddle.net/hxQdV/75,这不是问题所在。问题是必须“在没有contenteditable的情况下启用拼写检查”@Superdrac否,它在
div
s上使用
contenteditable
属性集。阅读我的答案,你就会明白,如果没有标准的
div
@Superdrac中的
contenteditable
,你就无法启用拼写检查。你在说什么?我从来没有说过任何关于
textarea
input
的事。