我正在使用包装div开发一个RTE(富文本编辑器)。
<div id="myeditor"></div>
//then
editorfunction(myeditor);
What the function does is add the following elements
<div id="myeditor">
<div class="toolbar">buttons here</div>
<div class="editorwrapper">
<div class="editor-richtext">
rich text etc
</div>
<textarea class="editor-source"><p>rich text etc</p></textarea>
</div>
</div>
我可以成功地从编辑器中获取html并将其放入文本区域,但是当我编辑文本区域时,我似乎无法将其粘贴回富文本。
提前谢谢!
更新1
好的,看起来
$("richtext").blur(function() {
$("textarea").val($(this).html());
});
工作正常,但不是相反的方式(从文本区到富文本)。
更新2它看起来很不稳定,它部分工作,但表现奇怪:我不能完全从文本区获取内容,并将HTML粘贴到可满足的内容中。我会继续做一些研究。
更新3我刚刚更新了更新1和更新2,因为我完全翻转了我大脑中的文本区域和富文本。抱歉!
更新4好的,我现在差不多解决了。我只是有一个小问题,在初始化时,如果我没有聚焦contenteditable div并切换到source view\textarea。textarea被清空,当我返回RTE view\contenteditable div时,它被清空。从空的textarea\source。我正在做一个工作。
您可以钩住textarea的onBlur事件来复制文本并将其粘贴到编辑器richtext中
$("textarea.editor-source").blur(function(){
$("div.editor-richtext").html($(this).val());
});
编辑
另一方面,您可以使用以下代码段
$("textarea.editor-source").focus(function(){
$(this).val($("div.editor-richtext").text());
});
您可能想要使用jQuery和以下功能?
$(".editor-source").keyup(function() {
$(".editor-richtext").html($(this).val());
});
一切正常。示例中的选择器是不正确的:
HTML:
<div class="editor-richtext">
original text
</div>
<textarea class="editor-source">modified text</textarea>
JS:
$(".editor-source").blur(function() {
$(".editor-richtext").html($(this).val());
});
演示
UPD:
$(".editor-richtext").click(function(){
$(".editor-source").val($(this).html().trim());
});
新的演示将内容从div
放入textarea
点击事件。