Keyboard 禁用tinyMCE ctrl+;s快捷方式以启用此快捷方式进行ajax内容保存

Keyboard 禁用tinyMCE ctrl+;s快捷方式以启用此快捷方式进行ajax内容保存,keyboard,tinymce,shortcuts,Keyboard,Tinymce,Shortcuts,我在页面中使用tinyMCE。我使用ajax捕获Ctrl+s来保存内容,当焦点不在tinyMCE时,一切正常,但当焦点在tinyMCE时,一切都不正常。我需要一段代码插入到这段代码中(而不是在设置或插件中),以使内容保存工作,即使焦点在tinyMCE内 <script type="text/javascript"> $(document).ready(function() { dssModify = new Sol.Dss.Modify(); dssModify.co

我在页面中使用tinyMCE。我使用ajax捕获Ctrl+s来保存内容,当焦点不在tinyMCE时,一切正常,但当焦点在tinyMCE时,一切都不正常。我需要一段代码插入到这段代码中(而不是在设置或插件中),以使内容保存工作,即使焦点在tinyMCE内

<script type="text/javascript">
$(document).ready(function() {
    dssModify = new Sol.Dss.Modify();
    dssModify.config = 
        {
        urlActionContentSave: "<?php echo \Sol\Dss\Dss::me () -> urlActionContentSaveGet () ; ?>",
        buttonContentSaveId: "<?php echo \Sol\Dss\Dss::me () -> modifyButtonContentSaveIdGet () ; ?>",
        buttonContentSavingTitle: "<?php echo \Sol\Dss\Dss::me () -> modifyButtonContentSavingTitleGet () ; ?>",
        buttonContentSaveTitle: "<?php echo \Sol\Dss\Dss::me () -> modifyButtonContentSaveTitleGet () ; ?>",
        textareaContentId: "<?php echo \Sol\Dss\Dss::me () -> modifyTextareaContentIdGet () ; ?>",
        formId: "<?php echo \Sol\Dss\Dss::me () -> modifyFormIdGet () ; ?>",
        idRoutes: "<?php echo $route[ 'id' ] ; ?>"
    };
    whenClicked = function()
    {
        $("#"+dssModify.config.textareaContentId).val(tinyMCE.activeEditor.getContent());
        dssModify.contentSave();
    }
    $("#<?php echo Sol\Dss\Dss::me () -> modifyButtonContentSaveIdGet () ; ?>").click( whenClicked );//Click Function
    $(window).keypress(function(event) {
        if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) 
            return true;
        whenClicked();
        event.preventDefault();
        return false;
    });

}//Ready function
);
</script>

$(文档).ready(函数(){
dssModify=new Sol.Dss.Modify();
dsmodify.config=
{
urlActionContentSave:“”,
ButtonContsaveId:“”,
按钮内容保存标题:“”,
buttonContentSaveTitle:“”,
textareaContentId:“”,
formId:“”,
idRoutes:“
};
whenClicked=函数()
{
$(“#”+dssModify.config.textareaContentId.val(tinyMCE.activeEditor.getContent());
dsmodify.contentSave();
}
$(“#”)。单击(单击时);//单击函数
$(窗口)。按键(功能(事件){
如果(!(event.which==115&&event.ctrlKey)和(&!(event.which==19))
返回true;
whenClicked();
event.preventDefault();
返回false;
});
}//就绪功能
);
这是一个棘手的问题。 您必须在主文档中创建这样的函数

function receiveShortCutEvent(eventObject){
    //console.log('receiveShortCutEvent', eventObject);
    $(document).trigger(eventObject);
    $(document).trigger({type: 'keydown', ctrlKey: eventObject.ctrlKey, altKey: eventObject.altKey, which: eventObject.keyCode, originalEvent:eventObject });
    return false; 
}
在tinymce端,如果键入ctrl+h,则需要调用receiveShortCutEvent。 您可以使用

        ed.onKeyDown.add(function onkeydown(ed, evt) {
            // Shortcut:  ctrl+h 
            if (evt.keyCode == 72 && !evt.altKey && !evt.shiftKey && evt.ctrlKey && !evt.metaKey) {
                setTimeout(function(){
                    var e = { type : 'keydown'};
                    e.charCode = e.keyCode = e.which = 72;
                    e.shiftKey = e.altKey = e.metaKey = false;
                    e.ctrlKey = true;
                    window.parent && window.parent.receiveShortCutEvent && window.parent.receiveShortCutEvent(e);
                }, 1);
            }
});

我希望您能理解。

使用
init\u instance\u callback
并定义自定义快捷方式

示例:

tinymce.init({
    selector: "textarea",


    init_instance_callback: function (editor) {
        editor.addShortcut("ctrl+s", "Custom Ctrl+S", "custom_ctrl_s");
        editor.addCommand("custom_ctrl_s", function() {
            alert("234");
            /*
            your custom codes
            */
        });
    }


});

我不是4号。唯一似乎有效的方法是:设置:function(ed){if($.browser.msie)ed.addShortcut(“ctrl+s”,function(){},function(){});else ed.addShortcut(“ctrl+s”,“”“,”);}我只是想禁用默认页面您使用了什么客户端系统?使用tinymce 5.0.5运行良好!非常感谢。