Javascript Ace编辑器中的RTL支持-箭头键
当我键入希伯来语时,箭头键将光标向相反方向移动。 有什么解决办法吗? 谢谢关于这个问题,没有什么问题。不幸的是,似乎还没有实现真正的从右到左的支持 无论如何,您可以尝试以下一种解决方案: 1) 在Ace容器中使用强制从右向左渲染。虽然这是关于文本样式的,但可能会有所帮助 2) 如果这没有帮助,您可以尝试捕获箭头事件并发送“假事件”(请参阅以获取代码参考):Javascript Ace编辑器中的RTL支持-箭头键,javascript,ace-editor,Javascript,Ace Editor,当我键入希伯来语时,箭头键将光标向相反方向移动。 有什么解决办法吗? 谢谢关于这个问题,没有什么问题。不幸的是,似乎还没有实现真正的从右到左的支持 无论如何,您可以尝试以下一种解决方案: 1) 在Ace容器中使用强制从右向左渲染。虽然这是关于文本样式的,但可能会有所帮助 2) 如果这没有帮助,您可以尝试捕获箭头事件并发送“假事件”(请参阅以获取代码参考): 谢谢,我会试试你的建议!当焦点在编辑器上时,不会执行事件。在文档的其余部分中,它正在工作。我正在考虑将您的代码附加到:editor.text
谢谢,我会试试你的建议!当焦点在编辑器上时,不会执行事件。在文档的其余部分中,它正在工作。我正在考虑将您的代码附加到:editor.textInput.getElement()这是windows编辑器的默认约定,如果您也想要mac编辑器行为,请尝试打开github功能请求。
function triggerFakeKeyEvent(keycode) {
let keyboardEvent = document.createEvent("KeyboardEvent");
let initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent[initMethod](
"keydown", // event type: keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // view: should be window
false, // ctrlKey
false, // altKey
false, // shiftKey
false, // metaKey
keycode, // keyCode: unsigned long - the virtual key code, else 0
0 // charCode: unsigned long - the Unicode character associated with the depressed key, else 0
);
document.dispatchEvent(keyboardEvent);
}
document.addEventListener('keydown', function(event) {
// left arrow key
if(event.keyCode === 37) {
event.preventDefault(); // ignore the original keyboard event
triggerFakeKeyEvent(39);
}
// right arrow key
else if(event.keyCode === 39) {
event.preventDefault(); // ignore the original keyboard event
triggerFakeKeyEvent(37);
}
});