在<div contenteditable=true id='edited_content>
中输入内容时,如果没有用<p>
标记包装,请查找该行是否有<p>
标记。如果标题标记出现,则不应使用<p>
标记进行包装。
在谷歌浏览器浏览器中,添加标题标记内容后,而不是使用<p>
标记包装内容,并使用<div>
包装它。如何防止这种情况?
我的代码:
var timeoutReference;
$("#edited_content").keyup(function(e) {
var code;
code = (e.keyCode ? e.keyCode : e.which);
if (code === 13) {
$("#edited_content").contents().filter(function() {
return this.nodeType === 3 && $.trim(this.nodeValue).length;
}).wrap("<p />");
} else {
if (timeoutReference) {
clearTimeout(timeoutReference);
}
timeoutReference = setTimeout(function() {
$("#edited_content.publitory").contents().filter(function() {
return this.nodeType === 3 && $.trim(this.nodeValue).length;
}).wrap("<p />");
}, 3000);
}
});
在开始输入时,使用<p>
标记包装当前行并输入,然后下一行应包含<p>
标记。在我的代码中,我做setTimeout
3秒,如果停止键入3秒,然后用<p>
标记包裹该行。但我的客户要求删除setTimeout
,他想立即用<p>
包裹当前行。怎么做到这一点?
输入html内容:
test content
<h2>sub content</h2>
content1
使用<p>
标记
<p>Test content</p>
<h2>sub content</h2>
<p>content1</p>
但是在Chrome浏览器中:
<p>test content</p>
<h2>sub content</h2>
<div>content1</div>