使用 JQuery 或 JavaScript 覆盖 Chrome 浏览器拼写检查语言

Over-ride Chrome Browser spell check language using JQuery or JavaScript

我使用的是最新的 Chrome 浏览器版本 55.0.2883.87 m.

在 HTML 网页的输入元素上,如何使用 JQuery/JavaScript 动态覆盖 Chrome 浏览器拼写检查器的语言?

比如页面显示为英文(美式),拼写检查设置为英文(美式),我如何传入de的德文语言代码,使得所有输入的文本区域表单内的元素将使用德语而不是英语(美国)语言对输入进行拼写检查?

这里是一个示例 HTML 文本区域。

<textarea cols="40" id="id_objective_details" maxlength="1000" name="objective_details" rows="10" class="kmw-disabled keymanweb-font textArea01"></textarea>

tl;dr

您可以使用 setAttribute('lang', lang) 更改语言,但 Chrome 不使用 lang 属性进行拼写检查。 This 是一个 无法解决 的问题。查看线程以获取更多信息。


相反,Chrome 使用必须由用户选择的用户词典。 (尝试右键单击文本区域 -> 拼写检查 -> Select 语言)。用户还应该安装字典,否则拼写检查将无法进行。

您可以尝试以下脚本,注意更改 lang 属性不会生效,但如上所述手动更改语言会生效。

function toLang(lang) {
  document.getElementById('id_objective_details').setAttribute('lang', lang);
}
<h3>Here is some random German text</h3>
<p>Hallo Welt, hallo und hallo wieder Welt.</p>

<h3>Here is some random English text</h3>
<p>Hello world, hello and hi again world.</p>
<textarea cols="40" id="id_objective_details" maxlength="1000" name="objective_details" rows="10" class="kmw-disabled keymanweb-font textArea01" spellcheck="true"></textarea>
<br>
<button onclick="toLang('en')">English check</button>
<button onclick="toLang('de')">German check</button>

您也许可以使用一些外部库,例如 JavaScript SpellCheck or JQuery SpellCheck 来完成这项工作。