粘贴到 cleditor 时,编辑器会从源代码中提取所有 html。我最终编辑了 jquery.cleditor.js 并向 $doc.click(hidePopups) 函数添加了一个绑定函数。我使用 setTimeouts 允许文本填充输入并完成 updateTextArea 函数。
.bind("paste", function() {
setTimeout(function() {
refreshButtons(editor);
updateTextArea(editor, true);
//remove any and all html from the paste action
setTimeout(function() {
//clean up the html with removeHtml function
$(editor.doc.body).html(removeHtml($(editor.doc.body).html()));
//change the input value with new clean string
$("#" + editor.$area[0].id).val($(editor.doc.body).html());
}, 100);
}, 100);
})
我使用下面的 removeHtml 函数从粘贴的内容中删除所有 HTML。
//remove html altogether
function removeHtml(str) {
var regex = /(<([^>]+)>)/ig;
var result = str.replace(regex, "");
return result;
}
该解决方案现已投入生产。