我在Facebox模式弹出窗口中的文本框上使用tinymce时遇到了一些问题。我正试着做一些类似以下的事情-
- 有一个父页面,我在其中加载
tinymce.min.js
javascript文件,同时也执行tinyMCE.init()
- 在父页面上有一个按钮,单击该按钮,我会调用一个javascript函数进行ajax调用,并在facebox中显示ajax调用的返回html
- ajax调用的返回HTML中有一个文本框,我需要它是tinyMEd
- 我有一个注册的事件处理程序,它绑定到了事件
afterReveal.facebox
——从文档中看,它是在facebox呈现后调用的(尽管文档不是很清楚) -
在上面的事件处理程序中,我有以下代码-
tinyMCE.excCommand('meAddControl',true,'new outline')
new-outline
是需要为tinyMEd的文本区域的id。
我没有收到任何JS错误,文本区域变成了tinymce编辑器。但是,编辑器会跳出面框(右侧),并且只有编辑器的一部分可见。
如果我不把它做成微小的mce,那么文本区域就会在facebox中正确地呈现。
我该如何更正?
由于CSS中的一些样式问题,我遇到了这个问题。如果你想做这样的事情,我所描述的方法是实现这一目标的最佳方法。
最好向我们展示您的tinymce的完整初始化配置。如果编辑器没有显示,并且您使用开发人员控制台没有得到javascript错误,那么很可能您的tinymce配置是错误的。
确保facebox.js
中存在以下行
reveal: function(data, klass) {
$(document).trigger('beforeReveal.facebox')
if (klass) $('#facebox .content').addClass(klass)
$('#facebox .content').empty().append(data)
$('#facebox .popup').children().fadeIn('normal')
$('#facebox').css('left', $(window).width() / 2 - ($('#facebox .popup').outerWidth() / 2))
// Below Line
$(document).trigger('reveal.facebox').trigger('afterReveal.facebox'); // This Line
}
和你的facebox弹出页面,你必须使用以下代码。
$(document).bind('afterReveal.facebox', function() {
tinyMCE.execCommand('mceAddControl', true, 'content');
// Here 'content' is editor (textarea) id
});
注意:不需要在弹出的facebox中初始化tinyMCE
配置。