EditContext: updateText() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die updateText()
Methode der EditContext
Schnittstelle aktualisiert den internen Textinhalt eines EditContext
Objekts.
Diese Methode muss nicht verwendet werden, wenn der Benutzer Text im zugehörigen Element eingibt. Das EditContext
Objekt aktualisiert automatisch seinen internen Textinhalt und löst bei Bedarf textupdate
Ereignisse aus.
Diese Methode kann jedoch verwendet werden, wenn der Benutzer auf andere Weise mit dem Textinhalt interagiert, z. B. wenn Text aus der Zwischenablage eingefügt wird.
Syntax
updateText(rangeStart, rangeEnd, text)
Parameter
rangeStart
-
Eine Zahl, die den Anfang des zu ersetzenden Textbereichs darstellt.
rangeEnd
-
Eine Zahl, die das Ende des zu ersetzenden Textbereichs darstellt.
text
-
Ein String, der den neuen Textinhalt darstellt.
Ausnahmen
- Wenn weniger als drei Argumente bereitgestellt werden, wird ein
TypeError
DOMException
ausgelöst.
Beispiele
Aktualisierung des Editors, wenn der Benutzer Text einfügt
Dieses Beispiel zeigt, wie die updateText
Methode verwendet wird, um den Textinhalt im EditContext
eines <canvas>
Elements zu aktualisieren, wenn der Benutzer die Strg/Cmd + V Verknüpfung benutzt, um Text einzufügen.
Das Beispiel verwendet auch die Clipboard.readText()
Methode, um den Text aus der Zwischenablage zu lesen.
<canvas id="editor-canvas"></canvas>
const canvas = document.getElementById("editor-canvas");
const ctx = canvas.getContext("2d");
const editContext = new EditContext();
canvas.editContext = editContext;
function render() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillText(editContext.text, 0, 40);
}
editContext.addEventListener("textupdate", (e) => {
render();
});
canvas.addEventListener("keydown", async (e) => {
if (e.key == "v" && (e.ctrlKey || e.metaKey)) {
const pastedText = await navigator.clipboard.readText();
console.log(
`The user pasted the text: ${pastedText}. Updating the EditContext text.`,
);
editContext.updateText(
editContext.selectionStart,
editContext.selectionEnd,
pastedText,
);
editContext.updateSelection(
editContext.selectionStart + pastedText.length,
editContext.selectionStart + pastedText.length,
);
render();
}
});
Spezifikationen
Specification |
---|
EditContext API # dom-editcontext-updatetext |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die
EditContext
Schnittstelle, zu der es gehört.