用自己的拼写检查覆盖浏览器的拼写检查?

8
我正在使用JavaScript验证编写一个表单,我想覆盖浏览器内置的拼写检查。
例如,假设我正在检查序列号并且它们都通过了正则表达式文本。我想在浏览器中突出显示那些未通过验证的序列号,就像浏览器突出显示无效拼写的单词一样。
我所能想到的就是禁用浏览器内置的拼写检查。
总之,有没有一种简单的方法可以覆盖浏览器内置的拼写检查(类似于在JavaScript中对数组进行排序时覆盖比较器的方式)?
如果没有,请问是否有一种简单的方法来模拟这种行为?
非常感谢。

我真的很希望这是真的。@HTML5让它发生吧。 - Him
3个回答

1
简短的回答是:不,JavaScript 无法接入拼写检查 API。此外,这似乎是不同的目标;拼写检查是关于自然语言的,而您似乎真正想要的是输入验证。当您的 JavaScript 代码检测到无效序列号时,最好通过 CSS 对用户应用不同的背景/边框颜色或类似提示(特别是因为每个浏览器都会以不同的方式呈现拼写检查错误)。

谢谢。尽管他们让你关闭它,但以任何方式覆盖它似乎有点奇怪。特别是在Javascript中几乎可以覆盖任何东西的情况下。我想现在只能通过自己着色表单数据来模拟它了。 - Benjamin Gruenbaum

0

我还没有评估这段代码,但是CkEditor成功地禁用了浏览器的拼写检查。它有一个默认设置为true的配置选项:disableNativeSpellChecker

config.disableNativeSpellChecker = true;

该设置用于“wysiwygarea”插件中,这是插件代码的链接:wysiwygarea plugin

也许您可以将其用作禁用浏览器拼写检查的自己代码的基础。


-1
请查看下面网址的演示,虽然它只适用于HTML5,但我认为它可能对您有所帮助。

http://jsfiddle.net/0GiS0/ZU74B/

这是他们在演示中使用的代码:

window.onload = function(){

    var support = document.getElementById("support");

    if('spellcheck' in document.createElement('textarea'))
    {
        support.textContent = "Your browser supports spellcheck";
        support.style.color = "green";
    }
}

1
谢谢,但我不认为这对我有帮助。你建议的是一种检测拼写检查的方法,而我正在寻找一种覆盖它的方法。 - Benjamin Gruenbaum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接