首页 > 解决方案 > 可以使用 Electron 的 spellCheckHandler 来任意标记文本区域中的子字符串吗?

问题描述

我很难找到任何官方或非官方文件。github 上有几个模块实现了传统的浏览器风格的拼写检查,但它们并没有提供太多的洞察力。

这里是否有一个 API 可以让我在任何时候看到给定文本区域中的子字符串“abc”时做红色下划线曲线?

标签: electronspell-checking

解决方案


方法webFrame.setSpellCheckProvider可用于设置自定义拼写检查功能。

例如,这个简单的代码片段将实现一个拼写检查器功能,该功能将用红色下划线曲线标记每个输入字段和文本区域中的abc或输入的单词:xyz

const { webFrame } = require ('electron');
//
const badWords = [ "abc", "xyz" ];
//
function customSpellCheck (word)
{
    return !badWords.includes (word);
}
//
webFrame.setSpellCheckProvider ('en-US', true, { spellCheck: customSpellCheck });

或者,如果您想要在or中标记包含子字符串的单词,则可以使用以下拼写检查功能:abcxyz

function customSpellCheck (word)
{
    return !badWords.some (badWord => word.includes (badWord));
}

请注意,webFrame.setSpellCheckProvider从 Electron 5.xx 开始,接口将有所不同,因为它将使用更深层次的回调函数......


推荐阅读