动态加载 tinymce 中没有提交任何更改

No changes submitted in dynamically load tinymce

我有一个带有文本的 div,当我点击它时,我加载了一个 tinymce 编辑器。 我的问题是,当我在编辑器中更改文本并提交时,更改消失了。

我有一个脚本的解决方法,它监听编辑器的键盘输入并将编辑器内容复制到隐藏字段,但这不是最好的方法。 特别是我还要听"paste"、"changes in tiny-dialogs"等...

这是我的代码

<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>

这是一小段代码 fiddle http://fiddle.tinymce.com/2ofaab/1

你能帮帮我吗?

提交前在你的编辑器上使用getContent方法,将编辑器内容复制到你的隐藏字段。

var content = editor.getContent();

或post它与AJAX描述在http://archive.tinymce.com/wiki.php/TinyMCE3x:How-to_load/save_with_Ajax_in_TinyMCE

发送内容到后台服务器调用前

tinymce.get('content').save();

一切正常(文本区域内容随编辑器内容更新)

我使用上述带有隐藏字段的解决方法解决了这个问题。 我将此代码放入我的 tinyMCE.init 并且它起作用了。 @Pontus Ivarsson 感谢提示。

setup: function(editor) {
    editor.on("change", function () {
        setTimeout(function () {
            $("#"+TextAreaID+"_hidden").val(editor.getContent());
        }, 100);
    });
},

@Thariama 的回答对我来说似乎合乎逻辑,但没有用