“文件”菜单中的“TinyMCE保存”按钮

时间:2014-06-07 13:59:53

标签: javascript jquery html tinymce wysiwyg

我正在使用TinyMCE,如果重要的话,我正在使用内联编辑器。这是我的代码......

<script type="text/javascript">
tinymce.init({
    selector: "div.prut8Eje",
    inline: true,
    plugins: [
        "advlist autolink lists link image charmap print preview anchor save",
        "searchreplace visualblocks code fullscreen",
        "insertdatetime media table contextmenu paste"
    ],
    menu : { // this is the complete default configuration
        file   : {title : 'File'  , items : 'save newdocument | print'},
        edit   : {title : 'Edit'  , items : 'undo redo | cut copy paste pastetext | selectall'},
        insert : {title : 'Insert', items : 'link media | template hr'},
        view   : {title : 'View'  , items : 'visualaid'},
        format : {title : 'Format', items : 'bold italic underline strikethrough superscript subscript | formats | removeformat'},
        table  : {title : 'Table' , items : 'inserttable tableprops deletetable | cell row column'},
        tools  : {title : 'Tools' , items : 'spellchecker code'}
    },
    toolbar: "save | insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
</script>

好吧,保存按钮在工具栏中正常工作,但不会显示在文件菜单中。我试图发布图片,但我需要10个声誉。

修改:您可以在此处查看图片 http://gyazo.com/3d08cd176cd7b3cb4c6d6d395884e466 http://gyazo.com/daed4520adb902cb87336d943d6a30f7

提前致谢,

2 个答案:

答案 0 :(得分:5)

这是一个老问题,但我找到了一种将“保存”按钮添加到文件菜单的简单方法。使用tinymce中的setup事件,您可以添加一个菜单项:

tinymce.init({
    .....
    setup: function(editor) {
           editor.addMenuItem('save', {
                icon: 'save',
                text: 'Save',
                cmd: 'mceSave',
                context: 'file',
                disabled: true,
                onPostRender: function () {
                    var self = this;
                    editor.on('nodeChange', function() {
                        self.disabled(editor.getParam("save_enablewhendirty", true) && !editor.isDirty());
                    });
                }
            });|
    }
});

这利用了所有常规保存功能,而onPostRender功能只启用或禁用按钮(使用我在save plugin.js文件中找到的代码)

答案 1 :(得分:3)

根据他们自己的文档,“保存”插件仅适用于工具栏而不适用于菜单:http://www.tinymce.com/wiki.php/Controls

看起来您必须手动创建自己的菜单项;这样的事情可以奏效:

tinymce.PluginManager.add('menusave', function(editor, url) {
    editor.addMenuItem('menusave', {
        text: 'Save',
        context: 'file',
        onclick: function() {
            $('.mce-i-save').closest('button').trigger('click');
        }
    });
});

为了实现这个目的,您还必须在工具栏中设置保存按钮,但可能有更好的方法来触发单击工具栏中的按钮。

然后不要忘记将“menusave”(或任何你选择的名称)添加到插件列表中,并将其添加到菜单中的任何位置:

file   : {title : 'File'  , items : 'menusave newdocument | print'},

顺便说一句,为了提出上面的代码,我玩了这个“TinyMCE小提琴”:http://fiddle.tinymce.com/ngdaab/0