当我尝试创建小插件以允许我在网站上的所有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()。
我真的迷失了,可能是造成这种情况的原因。
答案 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来执行此操作。它显然不喜欢隐藏。我会使用像我们所知的那样给出的例子。