与Facebox的TinyMce

时间:2012-03-22 20:52:23

标签: jquery tinymce facebox

我在Facebox模式弹出窗口中的文本框上使用tinymce时遇到了一些问题。我想尝试类似以下内容 -

  • 有一个父网页,我在其中加载tinymce.min.js javascript文件并执行tinyMCE.init()
  • 父页面上有一个按钮,点击按钮后,我调用了一个javascript函数进行ajax调用,并在facebox中显示来自ajax调用的返回html。
  • 来自ajax调用的返回HTML中有一个文本框,我需要将其作为tinyMCEd。
  • 我有一个已绑定到事件afterReveal.facebox的已注册事件处理程序 - 在渲染了facebox之后调用了文档中的内容(尽管文档不是很清楚)
  • 在上面的事件处理程序中,我有以下代码 -

    tinyMCE.execCommand('mceAddControl',true,'new-outline')

new-outline是textarea的id,需要是tinyMCEd。

我没有得到任何JS错误,textarea变成了tinymce编辑器。但是,编辑器会跳出面板(右侧),只有部分编辑器可见。

如果我没有把它变成微小的mce,那么textarea会在facebox中正确呈现。

我该如何纠正?

3 个答案:

答案 0 :(得分:2)

由于我的CSS中存在一些样式问题,我遇到了问题。如果你想做这样的事情,我所描述的方法是达到这个目标的最好方法。

答案 1 :(得分:0)

最好的方法是向我们展示您的完整初始配置。 如果编辑器没有显示,并且您使用开发人员控制台没有出现javascript错误,那么您的配置很可能是错误的。

答案 2 :(得分:0)

确保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
    }

在您的面具框弹出页面中,您必须使用以下代码。

$(document).bind('afterReveal.facebox', function() {
    tinyMCE.execCommand('mceAddControl', true, 'content');
    // Here 'content' is editor (textarea) id
});

注意:不需要在弹出的facebox中初始化tinyMCE配置。