我可以以某种方式禁用HTML文本字段上的拼写检查(例如Safari中所见)吗?
答案 0 :(得分:373)
更新:根据评论者的建议(额外归功于How can I disable the spell checker on text inputs on the iPhone),使用它来处理所有桌面和移动浏览器。
<tag autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
原始答案:Javascript无法覆盖用户设置,因此除非您使用文本字段以外的其他机制,否则这不是(或不应该)。
答案 1 :(得分:189)
是的,请使用HTML5定义的spellcheck="false"
,例如:
<textarea spellcheck="false">
...
</textarea>
答案 2 :(得分:7)
IFrame将“触发”拼写检查器(如果内容可编辑设置为true),就像文本字段一样,至少在Chrome中。
答案 3 :(得分:6)
对于Grammarly,您可以使用:
<textarea data-gramm="false" />
答案 4 :(得分:2)
以下代码段对所有textarea
和input[type=text]
元素都禁用了它:
(function () {
function disableSpellCheck() {
let selector = 'input[type=text], textarea';
let textFields = document.querySelectorAll(selector);
textFields.forEach(
function (field, _currentIndex, _listObj) {
field.spellcheck = false;
}
);
}
disableSpellCheck();
})();
答案 5 :(得分:0)
虽然在
????:
<textarea id="my-ta" spellcheck="whatever">abcd dcba</textarea>
??????????:
function setSpellCheck( mode ) {
var myTextArea = document.getElementById( "my-ta" )
, myTextAreaValue = myTextArea.value
;
myTextArea.value = '';
myTextArea.setAttribute( "spellcheck", String( mode ) );
myTextArea.value = myTextAreaValue;
myTextArea.focus();
}
?????:
setSpellCheck( true );
setSpellCheck( 'false' );
函数参数可以是布尔值或字符串。
无需遍历文本区域的内容,我们只需剪切'n粘贴其中的内容,然后设置焦点。
在 blink 引擎(Chrome(ium),Edge等)中进行了测试
答案 6 :(得分:0)
如果您动态创建了 HTML 元素,您将需要通过 JS 禁用该属性。但是有一个小陷阱:
设置 elem.contentEditable
时,您可以使用布尔值 false
或字符串 "false"
。但是当您设置 elem.spellcheck
时,您只能使用布尔值 - 出于某种原因。因此,您的选择是:
elem.spellcheck = false;
或者他的回答中提供的选项Mac:
elem.setAttribute("spellcheck", "false"); // Both string and boolean work here.