2011-03-22 69 views
1

我在页面中有jqGrid和TinyMCE编辑器。加载jqGrid后用TinyMCE设置html()的内容

网格加载后,我选择第一行。 在onSelectRow:函数中,我将编辑器值设置为$('#id').html(value_);。该值是其中一个行单元格内的值。

我的问题是,当页面加载第一行选择我可以看到编辑器内的值只有1秒,然后它消失。 (当我选择该行的onclick我能看到的价值,即使我刷新页面,我可以看到它,它不工作,只在第一次。)

这是我的代码:

TinyMCE的:

$('#tinymc_id.tinymce').tinymce({ 
     theme : "advanced", 
     theme_advanced_buttons1 : "cut,copy,paste,|,bold,italic,underline,|,undo,redo,|,justifyleft,justifycenter,justifyright,justifyfull,|" , 
     theme_advanced_buttons2 : "formatselect,fontselect,fontsizeselect,|,forecolor,backcolor,|", 
     theme_advanced_buttons3 : "", 
     theme_advanced_toolbar_location : "top", 
     theme_advanced_toolbar_align : "left", 
     plugins :       "paste" 
     init_instance_callback : myCustomInitInstance 
}); 

function myCustomInitInstance(ed) 
{ 
    var s = ed.settings; 
    var realID = ed.id; 
    tinymce.dom.Event.add(ed.getWin(), 'focus', function(e) { 
     if($(realID)) { 
     } 
    }); 
    tinymce.dom.Event.add(ed.getWin(), 'blur', function(e) { 
     if($(realID)) { 
     } 
    }); 
} 

的jqGrid的代码:

onSelectRow: function(id) 
    { 
     save_row(lastSel); 
     grid.editRow(id,false,'','','','','','',''); 
     jQuery ('#' + id + '_cell1').focus(); 
     lastSel=id; 
     var _text = grid.getCell(id , "cell2"); 
     $('#tinymc_id').html(_text); 
    }, 
    loadComplete:function() 
    { 
     set_selected_row(1); 
    } 

问题是什么?我该如何解决它?

回答

0

这里的问题是,你可能使用html()设置textareas内容。但编辑器位于iframe内(textareas内容在init中显示)。要设置编辑内容更好地利用

tinymce.get(editor_id).setContent(html_content); 
+0

@Thariama:感谢的,但它并没有为我工作,而不是我加入的OnInit:到TinyMCE的初始化,并呼吁$( '#tinymc_id')HTML(_text);在里面。解开HTML()是worng? – user590586 2011-03-22 12:03:40

+0

使用html并没有错,这取决于'#id'的含义,但是tinymce API提供了标准方法 - 使用这些标记的方法始终是安全的 – Thariama 2011-03-22 12:09:17

+0

'#id'具有什么作用? – Thariama 2011-03-22 12:09:40

0
$.each($('textarea'),function() { 
      if($(this).val() != "") { 
       var value = $(this).val(); 
       $(this).html(value) 
      } 
     }); 

试试这一个,如果它的工作