CKEditor只显示一次对话窗口

时间:2017-07-20 21:16:11

标签: javascript jquery ckeditor ckeditor4.x

您好我过去一直坚持这一点。 我为CKEditor创建了一个插件,当用户单击记录按钮时,会打开一个带有语言选择的对话框。一旦用户选择语言,他们就开始录制他们的语音。问题是当用户结束语音识别并且他们想要稍后记录时,对话窗口再次提示他们再次选择语言。我想这样做,当用户选择一种语言并且他们点击记录时,对话窗口不会再次弹出。

CKEDITOR.plugins.add('speechtotext', { 
    init: function(editor) {

        editor.ui.addButton('RecordButton', {
            label: 'Speech to Text',
            command: 'record',
            toolbar: 'insert',
        });

        //Button to end recording
        editor.ui.addButton('StopButton', {
            label: 'End Speech to Text',
            command: 'stop',
            toolbar: 'insert',
        });
        //Command to end Speech to Text Recording
        editor.addCommand('stop', {
            exec: function() {
                //stopRecording();
            }
        });

        //Register the "recordDialog", returns the Dialog object
        CKEDITOR.dialog.add('recordDialog', function() {
            //The definition of the Dialog(the dialog window itself).
            return {
                title: 'Speech to Text Language Selection',
                contents: 
                [{
                    elements: 
                    [{
                        type: 'select',
                        id: 'languageSelect',
                        label: 'Select Language',
                        items: 
                        [
                            //items
                        ],
                        default: 'english',
                        onChange: function() {
                            languageOption = this.getValue();
                            console.log(languageOption);

                            languageSelected = true;
                        } 
                    }]
                }],
                //The code that will execute ok button of the dialog window is pressed.
                onOk: function() {
                    //start recording(){}
                }
            };
        });

        if(languageselected === false){
            //opens up dialog window to prompt user for language selection
            editor.addCommand('record', new CKEDITOR.dialogCommand('recordDialog'));
        }else{
            editor.addCommand('record', {
                exec: function() {
                    //startrecording without prompting user to select language again
                }
            });
        }

    }
});

每当我选择一种语言时我会说languageSelected = true; 所以,下次我没有被提示进行另一种语言选择,但这没有任何意义,就像它从未运行过一样。 我开始认为,也许我不得不破坏插件实例并重新加载它,以便下次在没有对话框的情况下调用'record'命令。

if(languageSelected === false){
   //opens up dialog window to prompt user for language selection
   editor.addCommand('record', new CKEDITOR.dialogCommand('recordDialog'));
}else{
  editor.addCommand('record', {
        exec: function() {
        //startrecording without prompting user to select language again
        }
  });
}

有关如何使其正常工作的任何建议?谢谢!

0 个答案:

没有答案