CKEditor 在所有 <p> 中插入 <q>
CKEditor inserting <q> in all <p>
我正在 <textarea>
中应用一个 CKEditor,内容如下:
<q>
<p>this is paragraph one.</p>
<p>this is paragraph two.</p>
</q>
所以,我想引用所有这些段落。但是,当我应用 CKEditor 时,上面的 HTML 转换为 HTML:
<q>
<p><q>this is paragraph one.</q></p>
<p><q>this is paragraph two.</q></p>
</q>
这是我创建 CKEditor 实例的函数:
function create_ckeditor_instance(comment) {
comment = '<q>' + comment.trim() + '</q>';
var html = '<textarea rows="5" cols="80" id="reply-textarea">';
html += comment;
html += "</textarea>";
$('reply-comment-wrapper').html(html);
CKEDITOR.replace('reply-textarea');
CKEDITOR.instances['reply-textarea'].on('instanceReady', function (event) {
var range = CKEDITOR.instances['reply-textarea'].createRange();
range.moveToPosition( range.root, CKEDITOR.POSITION_BEFORE_END );
CKEDITOR.instances['reply-textarea'].getSelection().selectRanges( [ range ] );
CKEDITOR.instances['reply-textarea'].focus();
});
}
我的问题是,如何避免 CKEditor 的这种行为?
<q>
is Phrasing Content, but the <p>
element is Flow Content 的内容模型并且从那时起不是 <q>
的有效子项。
您需要使用 <blockquote>
。
外部 <q></q>
对我来说看起来像一个错误,但我不能在这里重现它,使用 CKEditor 的当前版本。
但它被转换为:
<p><q>this is paragraph one.</q></p>
<p><q>this is paragraph two.</q></p>
是正确的,因为将 <q>
包裹在这两个 <p>
周围会产生无效代码。
我正在 <textarea>
中应用一个 CKEditor,内容如下:
<q>
<p>this is paragraph one.</p>
<p>this is paragraph two.</p>
</q>
所以,我想引用所有这些段落。但是,当我应用 CKEditor 时,上面的 HTML 转换为 HTML:
<q>
<p><q>this is paragraph one.</q></p>
<p><q>this is paragraph two.</q></p>
</q>
这是我创建 CKEditor 实例的函数:
function create_ckeditor_instance(comment) {
comment = '<q>' + comment.trim() + '</q>';
var html = '<textarea rows="5" cols="80" id="reply-textarea">';
html += comment;
html += "</textarea>";
$('reply-comment-wrapper').html(html);
CKEDITOR.replace('reply-textarea');
CKEDITOR.instances['reply-textarea'].on('instanceReady', function (event) {
var range = CKEDITOR.instances['reply-textarea'].createRange();
range.moveToPosition( range.root, CKEDITOR.POSITION_BEFORE_END );
CKEDITOR.instances['reply-textarea'].getSelection().selectRanges( [ range ] );
CKEDITOR.instances['reply-textarea'].focus();
});
}
我的问题是,如何避免 CKEditor 的这种行为?
<q>
is Phrasing Content, but the <p>
element is Flow Content 的内容模型并且从那时起不是 <q>
的有效子项。
您需要使用 <blockquote>
。
外部 <q></q>
对我来说看起来像一个错误,但我不能在这里重现它,使用 CKEditor 的当前版本。
但它被转换为:
<p><q>this is paragraph one.</q></p>
<p><q>this is paragraph two.</q></p>
是正确的,因为将 <q>
包裹在这两个 <p>
周围会产生无效代码。