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
的事。