Signatur
Beschreibung
window.mozInnerScreenX ist eine nur lesbare, Firefox-spezifische Eigenschaft. Sie liefert die horizontale Position der oberen linken Ecke des Ansichtsbereichs (also des Bereichs, in dem das Dokument dargestellt wird) in Bildschirmkoordinaten. Die Angabe erfolgt in CSS-Pixeln.
Der Unterschied zu window.screenX: screenX bezieht sich auf die äußere Kante des Browserfensters inklusive Rahmen, Tab-Leiste und Symbolleisten. mozInnerScreenX berücksichtigt dagegen den Fensterrahmen und seitlich angedockte Elemente wie Seitenleisten. So lässt sich genau berechnen, wo ein Punkt im Dokument auf dem physischen Bildschirm liegt.
Einsatzgebiete sind vor allem Firefox-Erweiterungen, Kiosk- oder Testumgebungen und Werkzeuge, die Dokument-Koordinaten in Bildschirmkoordinaten umrechnen müssen, z. B. um native Popups oder Bildschirmaufnahmen exakt zu positionieren. Das Gegenstück für die vertikale Achse ist window.mozInnerScreenY.
Rückgabewert
undefined.Beispiele
Wert auslesen mit Feature-Erkennung
if ('mozInnerScreenX' in window) {
console.log(`Viewport beginnt bei x = ${window.mozInnerScreenX}px`);
} else {
console.log('mozInnerScreenX wird nicht unterstützt');
}
Klickposition in Bildschirmkoordinaten umrechnen
document.addEventListener('click', (event) => {
// Fallback: Abschätzung über screenX und Rahmenbreite
const viewportX = window.mozInnerScreenX
?? window.screenX + (window.outerWidth - window.innerWidth) / 2;
const screenPosX = viewportX + event.clientX;
console.log(`Klick bei Bildschirm-x: ${Math.round(screenPosX)}`);
// Zum Vergleich der vom Browser gelieferte Wert
console.log(`event.screenX: ${event.screenX}`);
});
Unterschied zwischen screenX und mozInnerScreenX
const outer = window.screenX;
const inner = window.mozInnerScreenX;
if (typeof inner === 'number') {
console.log(`Fensterkante: ${outer}px`);
console.log(`Viewport-Kante: ${inner}px`);
console.log(`Rahmen/Seitenleiste links: ${inner - outer}px`);
}
// Wichtig · Fallstricke
- Nicht standardisiert: Die Eigenschaft gibt es nur in Firefox (Gecko). Chrome, Edge und Safari kennen sie nicht, dort ist sie
undefined. Vor der Nutzung immer mit'mozInnerScreenX' in windowprüfen oder einen Fallback einbauen. - Ist eine Seitenleiste links geöffnet, ist der Wert größer als die reine Rahmenbreite. Die Näherung
(outerWidth - innerWidth) / 2stimmt in dem Fall nicht. - Einheit sind CSS-Pixel, nicht Gerätepixel. Beim Zoomen oder mit HiDPI-Bildschirmen verändert sich der Wert. Für physische Pixel mit
window.devicePixelRatiomultiplizieren. - Auf Systemen mit mehreren Monitoren kann der Wert negativ sein, wenn ein Monitor links vom Hauptbildschirm liegt.
- Datenschutz: Mit Fingerprinting-Schutz (
privacy.resistFingerprinting) kann Firefox gerundete oder feste Werte liefern. - Die Eigenschaft ist nur lesbar. Zuweisungen werden ignoriert.