Ich habe eine Funktion, die markierten Text in einem Bereich umschließt, wenn die Löschtaste gedrückt wird. Die Klasse der Spanne ist rot mit einem Zeilenumbruch, um anzuzeigen, dass sie "gelöscht" wurde.Ändern der Funktion der Löschtaste
CSS:
.deleted {
text-decoration:line-through;
color:red;
}
JavaScript:
$(document).keydown(function(e) {
(e) ? keycode = e.keyCode : keycode = event.keyCode;
if (keycode == 8 || 46) {
var span = document.createElement("span");
span.className = "deleted";
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount) {
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(span);
sel.removeAllRanges();
sel.addRange(range);
}
}
}
});
Dies ist ein contenteditable
Text, also wenn ich die Löschtaste drücken, natürlich löscht den markierten Text, sondern schafft noch das <span>
Element. Gibt es eine Möglichkeit, die traditionelle Funktion der Lösch-Taste zu deaktivieren, so dass der Text bleibt, aber immer noch mit der <span>
umschließt?
Danke! Dies funktioniert, außer jetzt ist mein Dokument nicht mehr "contenteditable" –
Könnte ich die Funktion make the 'document.body.contentEditable = 'false' haben; document.designMode = 'off'; 'und dann am Ende der Funktion wieder einschalten? –
Das sollte möglich sein - nur testen und sehen? Verwenden Sie die obigen Informationen, wenn Sie diese nach dem e.preventDefault() setzen; und am Ende der Funktion, dann schaltet man es wieder ein, das sollte theoretisch funktionieren. – junkfoodjunkie