有没有一种方法可以在不单击手动按钮的情况下打开 Tinymce Comments 侧边栏

Is there a way to open the Tinymce Comments sidebar without a manual button click

我们已经在我们的配置中实现了 Tinymce 评论插件,我们对它的工作方式很满意。但是,我们的用户希望单击 'showcomments' 按钮并在页面加载时显示包含评论的侧边栏。

我们可以看到命令 'tc-open-comments' 是单击按钮时触发的命令,但我们自己无法触发此命令。

如有任何帮助,我们将不胜感激。

配置

tinymce.init({
    selector: '.tinymce',
    plugins: [
        'paste tinycomments'
    ],
    toolbar: 'addcomment showcomments',
    tinycomments_mode: 'embedded',
    tinycomments_author: 'user1',
    tinycomments_author_name: 'username',
    content_css: '/css/app.css',
    setup: function (editor: any) {
        editor.on('ExecCommand', function (e) {
            console.log('The ' + e.command + ' command was fired.');
        });
        editor.on('init', function () {
            // These are the two commands fired by a click of the 'showcomments' button
            editor.execCommand('tc-open-comment'); // This does not work
            editor.execCommand('ToggleSidebar'); // This works

            let commentsPresent = false;
            let textareaContent = editor.startContent;

            if (textareaContent.includes('tox-comment')) {
                commentsPresent = true;
                console.log(commentsPresent);
            } else {
                console.log(commentsPresent);
            }
            
        });
    }
});

您调用命令打开评论边栏的代码缺少一些参数。正确的代码应该是:

editor.execCommand("ToggleSidebar", false, "showcomments");

来自文档:

https://www.tiny.cloud/docs/api/tinymce/tinymce.editor/#execcommand

execCommand(cmd:String, ui:Boolean, value:mixed, args:Object)

在这种情况下,要正确触发此特定命令,需要 ui:Booleanvalue:mixed 参数。

行:

editor.execCommand('tc-open-comment');

...没有必要。

这里有一个 Tiny Fiddle 可以证明这一点:

https://fiddle.tiny.cloud/Z7haab/1