我有一个带文本的div,当我点击它时,我加载了一个tinymce编辑器。 我的问题是,当我在编辑器中更改文本并提交时,更改就会消失。
我有一个脚本的解决方法,它会监听编辑器的键盘并将编辑器内容复制到一个隐藏的字段,但这不是最好的方法。 特别是我还必须听“粘贴”,“微小对话框的变化”等等......
这是我的代码
<script type="text/javascript">
$(document).ready(function() {
$(".TinyLoadOnClick").click(function() {
$("#TinyArea").show();
$(this).hide();
tinymce.init({
selector: "textarea",
plugins: ["advlist autolink lists link image charmap print preview anchor","searchreplace visualblocks code fullscreen","insertdatetime media table contextmenu paste"],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
});
});
</script>
<form method="post" action="dump.php">
<div class="TinyLoadOnClick">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
</div>
<textarea id="TinyArea" style="display:none;" name="content">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
</textarea>
这是一个小小提琴的代码 http://fiddle.tinymce.com/2ofaab/1
你能帮助我吗?
答案 0 :(得分:1)
在提交之前在编辑器上使用方法getContent,将编辑器内容复制到隐藏字段。
var content = editor.getContent();
或者使用http://archive.tinymce.com/wiki.php/TinyMCE3x:How-to_load/save_with_Ajax_in_TinyMCE
中描述的AJAX发布答案 1 :(得分:0)
在将内容发送到后端服务器之前调用
tinymce.get('content').save();
并且一切正常(textarea内容随编辑器内容更新)
答案 2 :(得分:0)
我用隐藏字段提到的解决方法解决了这个问题。 我把这个代码放到了我的tinyMCE.init上,但它确实有效。 @Pontus Ivarsson感谢您的提示。
setup: function(editor) {
editor.on("change", function () {
setTimeout(function () {
$("#"+TextAreaID+"_hidden").val(editor.getContent());
}, 100);
});
},
@Thariama的回答对我来说似乎合乎逻辑,但没有用到