當用戶編輯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