0

这是我正在使用的代码。我正在尝试让 tinymce 将现有数据加载到 TEXTAREA 中,但我没有尝试过,到目前为止我找到的任何“解决方案”都没有奏效。只要我不尝试加载数据,编辑器就可以正常加载:

<script type="text/javascript" src="http://URL/scripts/tinymce/js/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.PluginManager.load("spellchecker","http://URL/scripts/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js");
tinymce.PluginManager.load("wordcount","http://URL/scripts/tinymce/js/tinymce/plugins/wordcount/plugin.min.js");
tinymce.init({
  selector: "textarea#my_id",   
  theme: "modern",
  plugins: [
    "advlist autolink lists link image charmap print preview hr anchor pagebreak",
    "searchreplace wordcount visualblocks visualchars ",
    "insertdatetime media nonbreaking save table contextmenu directionality",
    "template paste textcolor spellchecker code"
  ],
  relative_urls : true,
  document_base_url : "http://URL/",  
  content_css: "scripts/tinymce/js/tinymce/skinslightgray/skin.min.css",
  external_image_list_url : "tinymce_imagelist.js",
  toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media | print preview | forecolor backcolor",
  autosave_ask_before_unload: false
});
tinyMCE.activeEditor.setContent("textarea content in here");      // <-- this doesn't work
</script>
<textarea name="Blog_Text" id="my_id" class="editable" cols="60%" rows="20"></textarea>

我试过了:

tinyMCE.activeEditor.setContent("textarea content in here");
tinyMCE.get("my_id").setContent("textarea content in here");

var ed = tinyMCE.getInstanceById("blog_text");
ed.focus();
ed.setContent("textarea content here");

$('#my_id').html("textarea content here");

如果我不尝试加载 textarea id,那么编辑器会正确加载(没有内容)。

我已经搜索了解决方案,但没有任何效果。我真的需要这个解决方案。我试过把这条线放在“init”之前和之后。

我确实希望这些示例能够在上下文中显示,对于像 tinymce 这样复杂和无情的工具,仅仅一行并没有帮助。

enter code here
4

3 回答 3

0

在 Martin Sansome 的大力帮助下,我使用 Angular.js 的解决方案是切换到 TinyMCE 的 jQuery 插件版本,确保我首先在页面上调用 jQuery,包括 tinymce.min.js 和 jquery.tinymce.min。 js。

<script src="lib/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/tinymce/tinymce.min.js"></script>
<script type="text/javascript" src="js/tinymce/jquery.tinymce.min.js"></script>

在我的控制器文件中,我将 textarea 的内容设置为上下文中的正确数据,然后初始化 tinyMCE

$('#edit_Jobs_Description').html(decodeURIComponent(attrs.jobsdescription));

$('#edit_Jobs_Description').tinymce({
});

现在正确的内容显示在页面编辑框中的文本区域中。

最后,我不得不更改提交表单的控制器中的函数,以使用来自 TinyMCE 而不是来自 textarea 的新内容。

var jobDescriptionHtml = tinyMCE.activeEditor.getContent();

希望这可以帮助某人。感谢马丁·桑松。

于 2014-11-27T10:31:00.720 回答
0

JavaScript 区分大小写。尝试

tinymce.activeEditor.setContent("textarea content in here");

于 2013-05-25T22:45:46.680 回答
0

这是我知道的一种方法:

我使用了 TinyMCE 的 jQuery 版本,我最初使用现有内容填充 textarea,如下所示:

var existTxt = "textarea content here";
$('#my_id').html(existTxt);

然后通过调用脚本函数来初始化 TinyMCE 编辑器,如下所示:

function updateTxt(my_id) {
        $('#'+ my_id).tinymce({
      ..all of the editor settings..
 });
}

编辑器初始化,将现有的 textarea 内容放置在带有 html 标记和所有内容的编辑器中。

于 2013-12-29T02:52:42.897 回答