标题可能有点误导;我的拼写检查器更关注格式而不是拼写(大写字母、标点符号和空格、撇号、将互联网俚语转换为完整单词、经常打乱的单词等)。然而,基本原则适用。
基本上,我正在构建的 JS/jQuery 检查器会在键入单词时纠正它们(在单词之后键入空格或标点符号之后)。
然而,就像任何自动更正一样,它必然会遇到错误。我什至没有考虑创建功能来确定“它的”或“它的”在给定情况下是否更合适(尽管如果存在这样的插件或代码片段,请给我指出一个)。
所以我想让它成为一个“屈服”的自动更正(因为缺乏更好的名字的知识)。基本上;
- 用户键入一个会触发检查器的单词,然后键入一个空格。
- 检查员纠正这个词。
- 用户认为这是一个错误并将其纠正回来(通过退格整个单词或部分单词,或突出显示它,或者他们觉得编辑它很舒服)。
- 用户继续键入,检查器不会再次触摸该单词的该实例。
现在最简单的当然是完全禁用对该单词的检查,但我希望检查器更正它的未来实例。我正在寻找的是检测用户将自动更正的单词(无论是在键入之后还是之后)编辑回自动更正之前的状态,然后学习不理会该单词的特定实例。
我什至不知道从哪里开始。我正在考虑一个 contenteditable,每个单词都包含在一个 span 中,自动更正的单词具有特殊的类和包含原始单词的 data-* 属性,监听自动更正单词的编辑,如果它被编辑回等于 data-*值,添加一个类,使其不在未来的自动更正轮次中。
我在想虽然这可能是不必要的复杂,或者至少不是阻力最小的路径。这样做最聪明的方法是什么?