2
A
回答
5
王牌只停止它已經處理的事件, 您可以使用捕捉事件偵聽器(editor.container.addEventListener(「的keydown」,處理程序,真)) 或使用ACE的命令處理程序
更新:到方框王牌命令有時僅捕獲事件處理程序將工作,但有時王牌hashHandler比大開關在鍵碼
HashHandler = require("ace/keyboard/hash_handler").HashHandler
var turn = 0
var h = new HashHandler([{
bindKey: "Up",
descr: "Block cursor movement smetimes",
exec: function(ed){
turn++
if (turn % 2)
return false // allow other ace commands to handle event
}
}])
editor.keyBinding.addKeyboardHandler(h)
// editor.keyBinding.removeKeyboardHandler(h)
或更緊湊的形式
var h = new HashHandler()
h.bindKeys({"Up": function(ed){...}})
0更好
3
我也希望能夠選擇性地過濾光標鍵的按鍵(並在彈出窗口而不是它中使用它們)。我能注射用下面的代碼此功能:
editor.keyBinding.origOnCommandKey = editor.keyBinding.onCommandKey;
editor.keyBinding.onCommandKey = function(e, hashId, keyCode) {
if (...) {
this.origOnCommandKey(e, hashId, keyCode);
}
}
鍵代碼38個代表光標,鍵代碼40下來,13進入。如果原始功能未被調用,Ace將不會看到這個按鍵。不幸的是,返回鍵仍被Ace消耗。
這可以阻止與類似的解決方案:
editor.keyBinding.origOnTextInput = editor.keyBinding.onTextInput;
editor.keyBinding.onTextInput = function(text) {
if (...) {
this.origOnTextInput(text);
}
}
文本是在這種情況下一個換行符。
相關問題
- 1. 在王牌編輯
- 2. KeyDown事件未被觸發
- 3. 王牌編輯器 - 去行
- 4. 王牌編輯器autocomplete color.red
- 5. autohotkeys王牌編輯
- 6. 在UserControl中未觸發KeyDown事件
- 7. 捕獲王牌編輯器在表內
- 8. 王牌編輯器 - 在編輯器中添加超鏈接
- 9. 王牌編輯 - 在我工作的王牌編輯器內的實時協同編輯位置
- 10. 王牌編輯器 - 只准備變量
- 11. PHP Web App中的王牌編輯器
- 12. 王牌編輯器顯示錯誤
- 13. 王牌代碼編輯器的問題
- 14. 王牌代碼編輯器主題403
- 15. 王牌javascript編輯器多個實例
- 16. 王牌編輯器無法引導
- 17. 王牌編輯器獲得支撐
- 18. JS觸發keydown事件
- 19. keydown事件觸發兩次
- 20. 在單個keydown上觸發不需要的多個KeyDown事件
- 21. 用王牌編輯硒編程
- 22. Plus.Google.com上的觸發器keydown
- 23. 王牌編輯器ace-build和ace-build-master文件夾問題
- 24. 什麼是王牌編輯文檔類
- 25. 自動完成的王牌編輯
- 26. 王牌編輯:沒有定義
- 27. Angular2 - 動態加載王牌編輯
- 28. jQuery的觸發器()和stopPropagation()上keydown事件
- 29. Keyup/Keydown/Keypress事件在Internet Explorer 11中未觸發
- 30. jqGrid單元格編輯器上的觸發點擊事件
感謝那,它工作得很好,但它不完全是我想要的。我想阻止編輯在某些情況下下一行,所以我需要在ace之前綁定到keydown事件,所以如果需要的話我可以阻止它。 – amitdar
謝謝!特別是我之後,editor.container.addEventListener(「keydown」,處理程序,真)行。這是我的目標。謝謝! :) – Manachi