当用户编辑contenteditable div
,并按下某些键时,我想重写默认行为。 例如,我想在用户按ENTER键时插入正常换行符。 我这样做,用document.execCommand("insertText",...)
Internet Explorer替代document.execCommand(“insertText”,...),用于文本插入,可以撤消/用户重做
这是到目前为止,我已经找到了做出这个动作撤消和重做用户的唯一途径。
<div id="editor" contenteditable="true" style="white-space:pre-wrap">
Some text....
</div>
<script>
$("#editor").keydown(function(evt){
console.log(evt.keyCode);
if(evt.keyCode==13){
document.execCommand("insertText",false,"\n");
evt.preventDefault();
evt.stopPropagation();
}
}
</script>
此代码适用于Chrome和Firefox。但是,即不支持“inserttext”。有没有办法用ie插入文字,这样用户可以撤销呢?
你关心哪个版本的IE的什么? IE 11具有启动/结束可撤消操作命令,但以前的版本不支持。 –
@TimDown,与我目前的情况相比,任何改进都是值得欢迎的:)当然,如果它适用于旧版本,也就是说,ie11比没有更好。 – Oli
@TimDown,请张贴您的答案。这将是非常有益的。 – Oli