Welcher JavaScript-Code sagt mir, wo sich das Ansichtsfenster des Browsers relativ zum Bildschirm befindet?
Meine Webanwendung enthält ein Applet, mit dem ein Snapshot über java.awt.Robot erstellt werden kann (das jar des Applets ist natürlich signiert und kann dies ausführen).
Das Problem ist, dass Robot createScreenCapture mit Rechtecken relativ zum gesamten Bildschirm arbeitet, während ich ein Rechteck relativ zum Ansichtsfenster erfassen möchte.
Ein Browser kann natürlich irgendwo auf dem Bildschirm sein, aber selbst wenn er maximiert ist (und daher oben links auf dem Bildschirm beginnt, zB {0,0}), weiß ich immer noch nicht, wie viel der Inhalt gepusht wird wegen der Fensterkopfzeile oder einiger Werkzeugleisten runter.
Es scheint nur IE gibt die Ansichtsfensterposition durch window.screenTop / Left .
Chrome unterstützt diese, aber sie halten die Browserposition.
FF unterstützt diese nicht, stattdessen hat screenX / Y , aber wie Chrome halten sie die Browserposition.
Bildschirm - AKA der Desktop. Zum Beispiel habe ich ein WSXGA + (1680x1050) Display. Ich benutze Windows und meine Taskleiste wird immer unten angezeigt, so dass sie etwa 50 Pixel vertikal verbraucht.
Browser - ein Fenster, das verschiedene Symbolleisten enthalten kann: Adress- und / oder Lesezeichenleiste oben, Status- / Zusatzleisten am unteren Rand usw.
Ansichtsfenster - wo eine URL tatsächlich gerendert wird.
Ihr Applet kennt seinen Speicherort über getLocationOnScreen ()
Hier ist ein Java-Applet, das die Bildschirmposition des Mauszeigers ausgibt, während Sie darin sind:
ScreenTest.java:
%Vor%screentest.html:
%Vor%Hier ist ein einfacheres Beispiel, das von Javascript aufgerufen wird. Das Applet ist 1px mal 1px in der oberen linken Ecke der Seite.
ScreenTest2.java:
%Vor%screentest2.html:
%Vor%Jon Hulkas Antwort hat ihm ganz seinen Kredit eingebracht - funktioniert perfekt für mich!
Wenn jemand anderes hierher kommt und eine Lösung benötigt, die keine Applets verwendet (meine Frage nach JavaScript-Code), können sie die (kompromittierende *) Lösung unten versuchen.
* = Es wird davon ausgegangen, dass die Browser nicht zu viel am unteren Fensterrand haben.
%Vor%Tags und Links javascript