我正在尝试在结合拼写检查的同时创建一个简单的可编辑字段(用于发布):

<div contenteditable="contenteditable" spellcheck="spellcheck" lang="en">text</div>

(http://www.wufoo.com/html5/attributes/17-spellcheck.html)

它可以工作,但是在Google Chrome上,拼写检查器无法检测到该语言。 (尽管指定了@lang属性)

“错误”已在Firefox中修复:https://bugzilla.mozilla.org/show_bug.cgi?id=338427

但我找不到有关Google Chrome浏览器实现此功能的任何信息。有没有办法将HTML5字段中的预期语言通知拼写检查器?也许是<head>中的某些内容,例如charsetmeta lang等?

最佳答案

尚未在所有浏览器中实现spellcheck属性。如果是这样,则需要修复一些错误。

根据W3Schools:

当我访问上面提到的链接(在Chrome 22中)时,存在一些错误。拼写检查器在“键”上说它拼写错误,双击某些单词也表示它拼写错误。我选择了匈牙利语作为拼写检查语言。

注:可以通过右键单击输入来更改语言,但是您需要重新加载页面。

还有一些浏览器的设置中已禁用拼写检查。

正如我在评论中看到的那样,bwitkowicz提到了JS解决方案。

function updateStatus() {
    console.log("updating");
    $("#spellStatus").text( String( $("#textContent").attr("spellcheck") ) );
    $("#editStatus").text(  String( $("#textContent").attr("contentEditable") ) );
}

$(function() {
    updateStatus();

    $("#spell").ready(function() {
        console.log("spell");
        $("#textContent").attr( "spellcheck", function(ix,old) {
            old = old === "false" ? false : true;
            console.log("setting " + (!old));
            return old;
        });
    });
    $("#edit").ready(function() {
        console.log("edit");
        $("#textContent").attr( "contentEditable", function(ix,old) {
            old = old === "false" ? true : false;
            console.log("setting " + (!old));
            return !old;
        });
    });

    $("#spell, #edit").ready(updateStatus);

});
#spell, #edit, #spellStatus, #editStatus {
     display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div><button id="spell">Toggle Spellcheck</button><span id="spellStatus"></span></div>
<div><button id="edit">Toggle Editable</button><span id="editStatus"></span></div>
<div id="textContent" style="padding: 5px; border: 1px solid black;">
Here is some texxt with spellung erreurs. Also you have to click inside the div to chekc erorrrrs.
</div>


我也找到了处理textareas的示例。检查此fiddle

更新:
<html lang="en">
<body>
  <textarea></textarea>
  <textarea lang="fr"></textarea>
  <div lang="ru">
    <textarea></textarea>
  </div>
</body>
</html>

在此HTML代码段中,第一个<textarea>将用英语进行拼写检查,第二个用法语进行拼写检查,第三个用俄语进行拼写检查。

如果元素指定了一种语言,并且用户没有为此语言安装字典,则默认情况下将禁用拼写检查,尽管用户可以选择手动启用它。

希望能有所帮助。唯一的问题是,您需要在div内单击(如果使用JS解决方案)以检查拼写错误。

关于html - 在Google Chrome中设置拼写检查语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21306199/

10-13 01:45