JavaScript contenteditable 中的缩进文本
JavaScript Outdent text in contenteditable
我正在尝试在内容可编辑的 div 中缩进和取消缩进。缩进效果很好,但 outdent execCommand 不工作。我有一个最后一个键缓冲区,适用于其他键盘快捷键,但不适用于这个。感谢您的帮助。
if (keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
if(keyCode == 9 && lastkey == 16){
event.preventDefault();
document.execCommand("outdent");
}
您应该使用 if / else if
以便您只是 运行 两个命令之一,并且 lastKey
也作为系列中的第一个进行检查
我不确定你的 lastKey
变量是如何工作的,所以我添加了 event.shiftKey
用于演示
$(".myClass").on("keydown", function(event) {
if (event.keyCode == 9 && event.shiftKey /* lastKey */ ) {
event.preventDefault();
document.execCommand("outdent");
} else if (event.keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
});
.myClass {
display: block;
height: 300px;
width: 500px;
border: 1px solid #bfbfbf;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="myClass" contenteditable="true"></div>
我正在尝试在内容可编辑的 div 中缩进和取消缩进。缩进效果很好,但 outdent execCommand 不工作。我有一个最后一个键缓冲区,适用于其他键盘快捷键,但不适用于这个。感谢您的帮助。
if (keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
if(keyCode == 9 && lastkey == 16){
event.preventDefault();
document.execCommand("outdent");
}
您应该使用 if / else if
以便您只是 运行 两个命令之一,并且 lastKey
也作为系列中的第一个进行检查
我不确定你的 lastKey
变量是如何工作的,所以我添加了 event.shiftKey
用于演示
$(".myClass").on("keydown", function(event) {
if (event.keyCode == 9 && event.shiftKey /* lastKey */ ) {
event.preventDefault();
document.execCommand("outdent");
} else if (event.keyCode == 9) { /* indent */
event.preventDefault();
document.execCommand("indent");
}
});
.myClass {
display: block;
height: 300px;
width: 500px;
border: 1px solid #bfbfbf;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="myClass" contenteditable="true"></div>