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

TinyMCE Save button in the File menu

本文关键字:保存 按钮 菜单 文件      更新时间:2023-09-26

我正在使用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/3d08cd176cd7b3cb4c6d6d395884e466http://gyazo.com/daed4520adb902cb87336d943d6a30f7

提前感谢,

这是一个老问题,但我发现了一个非常简单的方法来添加一个保存按钮到文件菜单。使用timece中的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文件中找到的代码)

根据他们自己的文档,"save"插件只用于工具栏而不用于菜单: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 Fiddle":http://fiddle.tinymce.com/ngdaab/0