TinyMCE + jQuery +自定义插件= tinymce未定义?

时间:2010-06-16 21:29:42

标签: jquery tinymce wysiwyg

当我尝试创建小插件以允许我在网站上的所有textareas上打开和关闭WYSIWYG时,会出现问题。

//$('form.default textarea').each(function(){
// console.log( $('<a href="#">Enable  WYSIWYG editor</a>').insertAfter('form.default textarea').prev('textarea.wysiwyg').tinymce().hide() );
//});

完整(简化)代码如下所示:

$('textarea.wysiwyg').tinymce({
  skin : 'cirkuit',
  theme : 'advanced',
  plugins : 'pagebreak,style,layer,advlink,inlinepopups,contextmenu,paste,directionality,noneditable,nonbreaking,xhtmlxtras,template',
  // Theme options
  theme_advanced_buttons1 : 'formatselect,fontsizeselect,forecolor,|,bold,italic,strikethrough,|,bullist,numlist,|,justifyleft,justifycenter,justifyright,|,link,unlink,|,image,|,code,paste,pastetext,pasteword,removeformat,|,backcolor,|,underline,justifyfull,sup,|,outdent,indent,|,hr,charmap,|,undo,redo',
  theme_advanced_buttons2 : '',
  theme_advanced_buttons3 : '',
  theme_advanced_toolbar_location : 'top',
  theme_advanced_toolbar_align : 'left',
  theme_advanced_statusbar_location: 'bottom',
  theme_advanced_resizing : true,
  theme_advanced_resize_horizontal : false,
  height : 500,
  theme_advanced_resizing_min_height : 500,
  document_base_url : 'http://static.<?=$settings['system_host']?>/'
 });

 $('textarea.wysiwyg').each(function() {
  $(this).tinymce().hide();
 });

错误是什么? FireBug说 tinymce()未定义;此消息发生在each()循环中。因此,实际上初始化了tinymce()。

我真的迷失了,可能是造成这种情况的原因。

1 个答案:

答案 0 :(得分:1)

以下是您正在寻找的切换功能:http://tinymce.moxiecode.com/punbb/viewtopic.php?id=436

var tinyMCEmode = true;
function toogleEditorMode(sEditorID) {
    try {
        if(tinyMCEmode) {
            tinyMCE.removeMCEControl(tinyMCE.getEditorId(sEditorID));
            tinyMCEmode = false;
        } else {
            tinyMCE.addMCEControl(document.getElementById('pagecontent'), sEditorID);
            tinyMCEmode = true;
        }
    } catch(e) {
        //error handling
    }
}

使用:

<a href="#" title="toogle TinyMCE" onclick="toogleEditorMode('pagecontent');">Toogle TinyMCE</a>

我怀疑你的问题是在tinyMCE使用自己的JavaScript库时使用jQuery来执行此操作。它显然不喜欢隐藏。我会使用像我们所知的那样给出的例子。