TinyMCE - 添加ON/OFF切换开关

Mar*_*ive 5 jquery tinymce magento

我在Magento管理部分的文本区域使用TinyMCE.我从一开始就可以看到我的TinyMCE编辑器,但我希望选项能够禁用/重新启用它.

我正在使用jQuery插件版本,所以我添加了一些脚本,这几乎正常.但是,它只影响TinyMCE的第一个实例 - 如果页面上有任何其他实例,它们不会受到影响.

我用这个例子http://tinymce.moxiecode.com/examples/example_23.php作为我迄今为止所做的基础.但仍然无法弄清楚为什么它只影响第一个实例.有任何想法吗?这是我的代码:

var $j = jQuery.noConflict();
// Add ON OFF toggle switch
$j(function() {
$j('textarea').after("<br/><span class=\"toggle form-button\">Toggle TinyMCE</span>"); 
$j("span.toggle").toggle(function(){
$j('.wrapper').find('textarea').tinymce().hide();
        }, function () {
$j('.wrapper').find('textarea').tinymce().show();
    });
});
Run Code Online (Sandbox Code Playgroud)

Mar*_*ive 11

如果我为每个单独的文本区域重复脚本,如textarea:eq(0),textarea:eq(1)等,可以正常工作.不知道为什么,但它会这样做.

更新:

他们在tinymce网站上拥有jQuery show/hide示例的方式实际上并不起作用.您实际上需要卸载然后重新加载它,而不是仅隐藏编辑器,否则在提交表单时将不会保存在"切换关闭"状态下所做的任何更改.所以你应该做类似以下的事情:

$(function() {
    var id = 'tinytextareaID'; // ID of your textarea (no # symbol) 
        $("a.toggle").toggle(function(){
           tinyMCE.execCommand('mceRemoveControl', false, id);
        }, function () {
            tinyMCE.execCommand('mceAddControl', false, id);
    });
});
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 10

对于任何寻找TinyMCE版本4.x的人,您可以使用:

tinymce.EditorManager.execCommand('mceToggleEditor', true, textarea_id);
Run Code Online (Sandbox Code Playgroud)