| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/CharacterBoundsUpdateEvent | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
berprfen Sie die Browser-Kompatibilittstabelle sorgfltig vor der Verwendung auf produktiven Webseiten.
Das CharacterBoundsUpdateEvent-Interface ist ein DOM-Ereignis, das eine Anfrage des Betriebssystems darstellt, um die Grenzen bestimmter Zeichen innerhalb eines bearbeitbaren Bereichs zu kennen, der einer EditContext-Instanz zugeordnet ist.
Dieses Interface erbt Eigenschaften von Event.
CharacterBoundsUpdateEvent() Erstellt ein neues CharacterBoundsUpdateEvent-Objekt.
CharacterBoundsUpdateEvent.rangeStart Schreibgeschtzt Der Versatz des ersten Zeichens innerhalb des Textes des bearbeitbaren Bereichs, fr den das Betriebssystem die Grenzen bentigt.
CharacterBoundsUpdateEvent.rangeEnd Schreibgeschtzt Der Versatz des letzten Zeichens innerhalb des Textes des bearbeitbaren Bereichs, fr den das Betriebssystem die Grenzen bentigt.
Dieses Beispiel zeigt, wie das characterboundsupdate-Ereignis und die updateCharacterBounds-Methode verwendet werden, um das Betriebssystem ber die bentigten Zeichenbegrenzungen zu informieren. Beachten Sie, dass der Rckruf des Ereignis-Listeners nur aufgerufen wird, wenn ein IME-Fenster oder andere plattformspezifische Bearbeitungsoberflchen zur Texteingabe verwendet werden.
<canvas id="editor-canvas"></canvas>
const FONT_SIZE = 40;
const FONT = `${FONT_SIZE}px Arial`;
const canvas = document.getElementById("editor-canvas");
const ctx = canvas.getContext("2d");
ctx.font = FONT;
const editContext = new EditContext();
canvas.editContext = editContext;
function computeCharacterBound(offset) {
// Measure the width from the start of the text to the character.
const widthBeforeChar = ctx.measureText(
editContext.text.substring(0, offset),
).width;
// Measure the character width.
const charWidth = ctx.measureText(editContext.text[offset]).width;
const charX = canvas.offsetLeft + widthBeforeChar;
const charY = canvas.offsetTop;
// Return a DOMRect representing the character bounds.
return DOMRect.fromRect({
x: charX,
y: charY - FONT_SIZE,
width: charWidth,
height: FONT_SIZE,
});
}
editContext.addEventListener("characterboundsupdate", (e) => {
const charBounds = [];
for (let offset = e.rangeStart; offset < e.rangeEnd; offset++) {
charBounds.push(computeCharacterBound(offset));
}
// Update the character bounds in the EditContext instance.
editContext.updateCharacterBounds(e.rangeStart, charBounds);
console.log(
"The required character bounds are",
charBounds
.map(
(bound) =>
`(x: ${bound.x}, y: ${bound.y}, width: ${bound.width}, height: ${bound.height})`,
)
.join(", "),
);
});
| Spezifikation |
|---|
| EditContext API # dom-characterboundsupdateevent |
CharacterBoundsUpdateEventDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |