編集:以下は複雑すぎて使用できません。https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommandによると
、を呼び出すだけで十分document.execCommand("delete");
です。
setSelectionRange
これがChromeでうまく機能する
を使用した私の解決策です: https ://github.com/gdh1995/vimium-plus/blob/master/lib/dom_utils.js#L169
simulateBackspace: function(element) {
var start = element.selectionStart, end = element.selectionEnd, event;
if (!element.setRangeText) { return; }
if (start >= end) {
if (start <= 0 || !element.setSelectionRange) { return; }
element.setSelectionRange(start - 1, start);
}
element.setRangeText("");
event = document.createEvent("HTMLEvents");
event.initEvent("input", true, false);
element.dispatchEvent(event);
}
まあ、唯一の不足は、それが行った変更を元に戻すことができないということです。
追加:元に戻すとやり直しを有効にする方法を見つけました:Javascript textarea undo redoで、両方の回答がChromeでうまく機能します