我将codemirror声明如下:
var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
mode: "text/javascript",
extraKeys: {
"Ctrl-R": function() {
// do something
},
"Ctrl-S": function() {
// do something
}
}
});
下面的extraKeys
工作正常,但是当焦点在编辑器元素中时。如果不是,则 Ctrl + R 刷新屏幕, Ctrl + S 尝试保存页面。有没有办法控制这些键的行为超出文本编辑器,运行相同的函数是否焦点在编辑器元素上?
答案 0 :(得分:1)
恕我直言,试图获得重新加载/保存的特权对最终用户不利,但这是一个可能的解决方案:
function editorCtrlR() { ... }
function editorCtrlS() { ... }
var editor = CodeMirror.fromTextArea(document.getElementById("editor"), {
mode: "text/javascript",
extraKeys: {
"Ctrl-R": editorCtrlR,
"Ctrl-S": editorCtrlS
}
});
document.onkeypress = function (event) {
// detect key pressed
var key = event.keyCode;
if (event.ctrlKey) {
if (key === ('R').charCodeAt(0) - 64) editorCtrlR();
if (key === ('S').charCodeAt(0) - 64) editorCtrlS();
}
}