使用JQuery(移动)填充TinyMCE textarea

时间:2011-11-28 19:06:08

标签: jquery jquery-mobile tinymce

所以我创建了我的textarea,现在它是一个TinyMCE盒子......很棒。

但我希望用户选择一些数据,然后用该数据填充该textarea(这是HTML btw)......我使用的是这段代码:

 var text = file.rows.item(0).presentData;
    if (text != null) {
        text = text.replace(/\n/g, '<br />');
        $('#editcontent').val(text); 

#editcontent是一个textarea ...这个工作正常,直到我添加了TinyMCE。现在,当我点击此页面时,内容未填写。

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

正如贾斯帕所说,首先填写文本区域。

TinyMCE的作用是隐藏你的textarea并在其位置放置一个可编辑的iframe。

如果您无法填写textarea,那么可以使用firebug或类似的解决方案检查实时代码,以查看Ifram获取的名称或ID,或者您是否可以指定ID。

然后使用它来代替访问Iframe。

答案 1 :(得分:1)

在设置textarea的值后初始化TinyMCE实例怎么样?

 var text = file.rows.item(0).presentData;
    if (text != null) {
        text = text.replace(/\n/g, '<br />');
        $('#editcontent').val(text).tinymce(...);

我不确定您是否初始化TinyMCE,但如果您在$('#editcontent').val(text)行之后对其进行初始化,那么它应该可以处理您的数据。

您还可以“刷新”TinyMCE实例的内容。

  1. http://www.tinymce.com/forum/viewtopic.php?id=25909
  2. How do I refresh TinyMCE for the code that I add with JavaScript
  3. How to refresh tinymce iframe?
  4. http://www.tinymce.com/wiki.php/Command_identifiers

答案 2 :(得分:1)

我在加载时调用了init,然后在填写完文本之后又尝试再次执行...最终对我有用的就是在我填写textarea框之后调用它。

 if (text != null) {
    text = text.replace(/\n/g, '<br />');
    $('#editcontent').val(text);     
}
else {
    text = '<div style="margin: 10%"><h2>This is a blank presentation.  Click edit.</h2></div>';
    $('#editcontent').val('');
}

$('textarea#editcontent').tinymce({
    mode : "textareas",
    theme : "advanced",
    plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

    theme_advanced_buttons1 : "formatselect,bold,italic,underline,strikethrough,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,justifyfull,fontsizeselect,undo,redo,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,charmap",
        theme_advanced_buttons2 : '',
        theme_advanced_buttons3 : "",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "none",
        theme_advanced_resizing : true,
});

答案 3 :(得分:1)

试试这个:

var newtext = 'some text';
tinyMCE.get('editcontent').setContent(newtext);