取消绑定(覆盖)keydown事件

时间:2012-10-01 08:48:57

标签: javascript wordpress keydown

前几天我写了一个简单的WordPress插件,保存帖子并显示预览。这是javascript。

jQuery(document).ready(function($){

if (document.cookie.indexOf("previewCookie") >= 0){  
    //expires added for IE
    document.cookie="previewCookie=true; max-age=0;expires=0;path=/wp-admin/";          

    //quickPreviewOption is set in quick-preview.php  
    var previewURL = document.getElementById('post-preview');
    if(quickPreviewOption === 'current'){                                           
        window.location = previewURL;
    }
    if(quickPreviewOption === 'new'){
        window.open(previewURL,"wp_PostPreview","","true");
    }
}

$(document).keydown(function(e){
    if((e.ctrlKey || e.metaKey) && e.which == 83){

        //Find #save post if it's a draft. If post is published, #save-post doesn't exist.
        if($('#save-post').length){
            $('#save-post').click();    
        }
        else if($('#publish').length){
            $('#publish').click();
        }

        //Sets a cookie to open the preview on page refresh. Saving a post auotmatically refreshes the page.
        document.cookie = "previewCookie = true;max-age = 60;path=/wp-admin/";      
        return false;           
    }

}); 
});

这在wordpress中使用“html”编辑器时有效。但是,使用WordPress中的“可视化”编辑器,我无法启动任何keydown功能。不是ctrl-s,ctrl-q等我不知道阻止它的是什么,我在源代码中找不到它。我尝试解除所有keydown事件的绑定,然后只重新绑定它没有取消绑定WordPress keydown事件。有人有什么想法吗?

以下是快速预览插件的链接,以防万一。 http://wordpress.org/extend/plugins/quick-preview/

1 个答案:

答案 0 :(得分:0)

我发布的链接指向一个对我有用的答案,因为没有其他人回答这个问题。 Tiny MCE拥有自己的keydown功能,当WordPress初始化tinyMCE时你需要将其挂钩。这里的答案对我有用。 https://wordpress.stackexchange.com/questions/24113/hook-the-keydown-event-in-the-tinymce-post-editor