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

js
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.

html
<canvas id="editor-canvas"></canvas>
js
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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
updateText
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch