2012-12-03 39 views
5

我想禁用ACE編輯器的查找對話框,按 命令 + ˚F組合鍵時,編輯器具有焦點時調用。如何禁用ACE編輯器的查找對話框

我已經試過以下(除其他事項外):

document.body.onkeydown = 
document.body.onkeyup = 
document.body.onkeypress = function(event) {  
    return false; 
}; 

這可以防止一個從能夠正常打字,但不會被處理停止命令 + 關鍵

如何防止命令 + F組合處理?

理想情況下,我想能夠防止只有命令 + ˚F組合,我想繼續使用其他命令組合鍵。

我已經成立了一個JSFiddle for this question

+1

我認爲你正在接近這個錯誤。您應該嘗試禁用查找對話框,而不是快捷鍵。 –

回答

6

Andrei Andrushkevich's answer現在是一個更好,更簡單的解決方案。


您可以通過使用editor.commands.addCommand重新定義快捷鍵相關的命令,然後只需提供一個空函數。此自定義定義將優先於內置定義。在這種情況下:

editor.commands.addCommand({ 
    name: "unfind", 
    bindKey: { 
     win: "Ctrl-F", 
     mac: "Command-F" 
    }, 
    exec: function(editor, line) { 
     return false; 
    }, 
    readOnly: true 
}) 

這裏是updated JSFiddle。我沒有找到明確的文件,但here's the editor.commands definitionhere's where .addCommands() is。 (注:代碼可能已經改變,因爲這個答案寫)

市價修改jcubic的評論

+0

這就是它!非常感謝你!我自己沒有任何意見可以自己面對這個問題。 –

+0

還有一個函數'addCommand',它只接受對象。 – jcubic

13

這是更好地使用,而不是使用「removeCommand「addCommand」假冒處理器

editor.commands.removeCommand('find');