GRAYT插件在编辑器中破坏HTML

GRAYT plugin is breaking HTML in editor

本文关键字:HTML 编辑器 插件 GRAYT      更新时间:2023-09-26

我有一个使用SCAYT/GRAYT插件的CK编辑器的实现,我发现了我认为可能是CK编辑器本身的错误。

我使用的是4.5.11版本

考虑这个HTML:

<tr>
    <td align="left" bgcolor="#e6e1ce" height="30" id="table_column1" valign="middle"><span style="font-family: verdana,geneva,sans-serif,arial;">Content</span></td>
    <td align="left" bgcolor="#f8f9f3" height="30" id="table_column2" valign="middle"><span style="font-family: verdana,geneva,sans-serif,arial; ">Content</span></td>
    <td align="left" bgcolor="#e6e1ce" height="30" id="table_column1_2" valign="middle"><span style="font-family: verdana,geneva,sans-serif,arial;">Content</span></td>
</tr>

当我的编辑器加载并呈现HTML内容时,SCAYT和GRAYT插件开始执行它们的魔法并检查内容的拼写和语法问题。

问题在于GRAYT。它将两个<td>元素的文本误认为是一个句子或短语,并试图在它们周围放置一个应该是<span>,以简单地告诉用户纠正他们的语法。

相反,它产生如下结果:
<tr>
    <span class="gramm-problem" data-grayt-phrase="Content Content">
        <td align="left" bgcolor="#e6e1ce" height="30" id="table_column1" valign="middle">
            <span style="font-family: verdana,geneva,sans-serif,arial;">Content</span>
        </td>
        <td align="left" bgcolor="#f8f9f3" height="30" id="table_column2" valign="middle">
            <span style="font-family: verdana,geneva,sans-serif,arial; ">Content</span>
        </td>
    </span>
    <td align="left" bgcolor="#e6e1ce" height="30" id="table_column1_2" valign="middle">
        <span style="font-family: verdana,geneva,sans-serif,arial;">Content</span>
    </td>
</tr>

显然,这是无效的HTML,是不希望看到的。真正的问题是它破坏了编辑器中表的布局。

有人知道我能做什么来解决这个问题吗?检查CK编辑器/Web拼写检查器文档几乎没有关于如何控制此功能的信息。在最好的情况下,我可以禁用它,我相信这也是不希望的。

您描述的问题是已知问题,我们计划在几周内解决它。现在GrammarAsYouType (GRAYT)仅作为CKEditor 4+和的插件可用,它是Alpha版本。目前,我们的团队正在对其进行改进。

作为一种解决方法,现在我们可以建议在SCAYT启动时关闭GRAYT功能:

config.grayt_autoStartup = false;

作为一种替代方法,您可以关闭表(td, tr)中的语法检查。但请注意,它将影响SCAYT和GRAYT(在<tr><td>标签中没有拼写检查)。

config.scayt_elementsToIgnore = 'tr,td';

关于CKEditor 4+可以更改的所有SCAYT参数的更多详细信息,您可以在我们的网站上找到:http://wiki.webspellchecker.net/doku.php?id=scayt_parameters_ckeditor4