【问题标题】:tinymce won't get (id) or setcontenttinymce 不会得到 (id) 或 setcontent
【发布时间】:2013-05-25 22:15:25
【问题描述】:

这是我正在使用的代码。我正在尝试让 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

【问题讨论】:

  • 你在使用 tinymce4 吗?

标签: tinymce textarea


【解决方案1】:

JavaScript 区分大小写。试试

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

【讨论】:

  • 这是一个非常好的建议,不幸的是 tinymce 也不喜欢,“编辑器”无法加载。
【解决方案2】:

我知道这是一种可行的方法:

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

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

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

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

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

【讨论】:

    【解决方案3】:

    在 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();
    

    希望这对某人有所帮助。感谢 Martin Sansone。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多