• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Browsergröße an Auflösung anpassen (IE9)

schenki

New member
Hallo liebes Forum,
habe jetzt schon einige Zeit nach diesem Problem im Internet geforscht allerdings nicht die perfekte Lösung für mich gefunden.
Ich arbeite an einer Seite für meine Firma (nichts externes - müsst mir nicht den Tipp geben das mein Vorhaben nicht Nutzerfreundlich ist, das interessiert hiert nicht ;) )

Diese Seiten (2 Stück) sollen sich nach dem einloggen in den Rechner öffnen.
Oben ist die "Main-Seite" mit gewissen Inhalt wie Fotos, ein Slogan usw.
Unten (Über der Taskleiste) soll eine extra Seite als Newsticker laufen.

Aktuell habe ich es so umgesetzt, das sich erst die index öffnet, diese öffnet mit window.open die beiden Seiten, stellt die Größe, Position usw. ein und schließt sich dann wieder.
Das Problem ist, dass ich nicht genau weiß wie ich die größe der Fenstergrößen an die Auflösung der Nutzer anpasse. Haben in der Firma verschiedene Bildschirme mit verschiedenen Auflösungen.
Hatte es mit window.screen.height usw. versucht aber keine Lösung gefunden.

Der Newsticker soll immer zentral von der Breite und genau über der Taskleiste liegen, egal welche Auflösung der Nutzer hat.
Jemand eine Ahnung wie ich das lösen kann? mit window.moveto bekomme ich zwar den Newsticker über die Taskleiste aber nur mit "rumprobieren" der Werte. Sobald die Auflösung eine andere ist, sieht wieder alles anders aus..

Vielen Dank für eure Hilfe. Falls nötig kann ich noch Quellcode nachreichen!

Lg,
Schenki
 
Ich kann dir ohne Code usw. ehrlich gesagt überhaupt nicht helfen, aber wenn du einfach nur die Bildschirmgröße von dem aktiven Bildschirm herrausfinden möchtest, denn solltest du mal nach "event.pageX/event.pageY" Googlen :D

Da findest du ganz sicher etwas!!

MFG HappyPcUser
 
Der Code der Index, die die Seiten öffnet. funtion newMAIN und newTICKER sollen sich nach der Auflösung des Nutzers positionieren..:confused:

Code:
<!doctype html>
<html> 
<head>
<meta charset="utf-8">
<meta name="keywords" content="Arbeitssicherheit">

<script language="JavaScript">

 function newMAIN()   {
  Fenster = window.open("arbeitssicherheit.html",
  "_blank","width=850,height=400,location=0,menuebar=0 ,personalbar=0,status=0,resizable=0,channelmode=0,scrollbars=0,directories=0,toolbar=0,left=735,top=0 ").focus();
                      }
function MyPopUpWin() {
var iMyWidth;
var iMyHeight;
iMyWidth = (window.screen.width/2) - (600 + 10);
iMyHeight = (window.screen.height/2) - (-300);
var win2 = window.open("Arbeitssicherheit_Ticker.html","_blank","status=no,height=10,width=1200,resizable=no,left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",toolbar=no,menubar=no,scrollbars=no,location=no,directories=no");
}


 function CloseWindow()
					  {
  window.open('','_self','');
  window.close();
					  }		
</script>
<title>Ladeseite</title>
</head>
<body onload="window.moveTo(800, 0); newMAIN(); MyPopUpWin(); CloseWindow();">
 </body>
 </html>
 
arbeitssicherheit.html und arbeitssicherheit_ticker.html.. die erste soll oben rechts am bildschirm (wenn 2 bildschirme den linken-main) und der ticker soll über die ganze breite über der Taskleiste sein..
danke schonmal für die Hilfe :)
 
arbeitssicherheit.html und arbeitssicherheit_ticker.html.. die erste soll oben rechts am bildschirm (wenn 2 bildschirme den linken-main) und der ticker soll über die ganze breite über der Taskleiste sein..
danke schonmal für die Hilfe :)

Puuh :O Ich bekomms auch nicht hin, habe mich daran jetzt erstmal 30min versucht. Es regt sich nicht ein Pixel nach links oder rechts....

FRAGE: wo deklarierst du die Variable Fenster?
"_blank" bedeutet?
 
ja es ist zum verzweifeln diese seite :D
ups ja, deklariere sie garnicht.. kann ich also weg lassen geht ja auch so!
_blank damit sich bei window.open das neue fenster als "popup" öffnet?
hatte vorher nie mit htlm javascript usw. zu tun, arbeite mich aufgrund der aufgabe gerade in das thema rein..

danke trotzdem für den netten versuch :)!!!
 
Also ich bin in der Web-Entwicklung zuständig, aber mit Page events in JS/Jquery arbeite ich kaum! Brauchte das nur damals für eine mousemove Funktion.

Schuldige dafür, und kein Problem ;)

Bei anderen Sachen kann ich sicher besser helfen.

MFG HappyPcUser
 
Der Code ist hoffnungslos veraltet (language-Attribut; „screenX/Y” und „directories” sind beispielsweise deprecated/obsolete) und weist globale Variablen auf.
Außerdem wird das Fenster vom Pop-Up Blocker geblockt:
Most browsers block popups if they are called outside of user-triggered event handlers like onclick.

PS:
Popups came to us from dark ages, where no AJAX existed. As of now, they are mostly out of use. Dynamic content is loaded into DIV elements or IFRAMEs.
Popups can be abused. A bad page may open tons of popup windows, so most browsers try to block popups and protect the user.

Quelle und weiterführende Info: Popup windows | JavaScript Tutorial
 
Hallo j-l-n, danke für die Tipps :)
Da die Seite wie gesagt nur intern läuft und unser Browser (IE9) die Popups nicht blockiert ist alles in Ordnung mit diesen "Nutzerunfreundlichen quark".
Gestern habe ich es endlich hinbekommen, dass die TickerSeite sich der Breite der Auflösung anpasst.. Nur die Position ist noch schwierig! Werde mich mal in Ajax reinlesen!
Was noch merkwürdig ist, für mich gleicher Code, funktioniert aber nicht gleich:

Hiermit öffne ich Arbeitssicherheit.html (ohne Adressleiste usw.)
Code:
function newMAIN()   {
  window.open("arbeitssicherheit.html",
  "_blank","width=850,height=400,location=0,menuebar=0 ,personalbar=0,status=0,resizable=0,channelmode=0,scrollbars=0,directories=0,toolbar=0,left=735,top=0 ")

Und hiermit öffne ich nun den Ticker (passt sich Größe der Auflösung an - allerdings hab ich nun eine Adressleiste?!)
Code:
function popup(url) 
{
 params  = 'width='+screen.width;
 params += ', height='+screen.height/12;
 params += ', top=0, left=0'
 params += ', fullscreen=0'
 params += ', personalbar=0'
 params += ', menuebar=0'
 params += ', status=0'
 params += ', resizable=0'
 params += ', channelmode=0'
 params += ', scrollbars=0'
 params += ', directories=0'
 params += ', toolbar=0'
 params += ', location=0';

 window.open("Arbeitssicherheit_Ticker.html","_blank", params);
}

ansich ist doch der Code der selbe ? Nur in anderer Form geschrieben, wieso habe ich nun eine Adressleiste? Vielen dank für evtl. Antworten so lässt sich die Sprache super lernen wenn man merkt was man falsch gemacht hat!

So gucke mir nun mal Ajax an !

Lg,
Schenki
 
schenki, im unteren fehlen ja außer beim ersten und letzten params += überall die Semikoli. Kommt da kein Syntaxerror in der Konsole?
 
Ok danke, habe sie nachgetragen.. Dachte ein Semikloi kommt nur wenn ich den Befehl beende, also abschließend.. das dann danach nichts mehr "berechnet" wird.
War dumm von mir.. geht aber trotzdem nicht :D wenn ich bei
Code:
window.open("Arbeitssicherheit_Ticker.html","_blank", params);
params in "" setze habe ich wieder keine Adressleiste mehr aber dafür sind die anderen Funktionen weg?:confused:
 
Jedes params += ist ein Befehl! Er bedeutet, "konkateniere params mit folgendem Inhalt".
Oder du musst es so schreiben:
Code:
params = 'hallo'
    +'erde'
    +'sonne'
;
Wenn das Beispiel Arbeitssicherheit.html funktioniert, warum machst du es dann nicht genau so sondern mit Variable?

Ergänzung: Wieso listest du auch alle Parameter mit 0 auf? Die sind doch sicherlich default mit 0 schon belegt, oder nicht?
 
weil ich bei Arbeitssicherheit "width=850,height=400..." habe und es irgendwie nicht hinbekomme bei Arbeitssicherheit_Ticker.html width=screen.width zu integrieren.. wo ein ' oder ein " hinkommt :( hätte gerne bei beiden die funktion width=screen.width und würde dann zb /12 rechnen oder so damit die größe sich halt der desktopauflösung anpasst.. bekomme es aber nicht bei window.open integriert, nur so mit dem params zeug
 
Dieser Code funktioniert bei mir im Firefox für Windows mit einer Bildauflösung von 1600 x 900 exakt wie gewünscht:
HTML:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>für schenki</title>
</head>
<body>
	<div id="test"></div>
	<script>
		function popup() {
			var breite = parseInt(screen.width/2,10);
			var hoehe = parseInt(screen.height/3,10);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top=200'
				+',left=100'
			;
			window.open("http://forum.jswelt.de/javascript/60067-browsergr-e-aufl-sung-anpassen-ie9.html","_blank",params);
		}
		popup();
	</script>
</body>
</html>

Habe gerade keinen alten IE hier. Bitte teste mal, schenki. Die oben-links Ausrichtung ist jetzt nicht am Browser sondern am Bildschirm orientiert. Breite durch 2, damit left=100 klappt.
 
Zuletzt bearbeitet:
Wow! Super nett! Der Code funktioniert sehr gut und sieht vorallem sehr sauber aus :)
Hast du vllt. noch eine Idee wie ich jetzt die Seite die "gepopupt" wird immer über der Taskleiste anzeigen kann? wenn ich mit Pixeln arbeite das sie weiter noch unten kommt passt es irgendwann, allerdings sieht das dann natürlich bei einer anderen Auflösung direkt ganz anders aus! sollte ich da mit screen.availtop arbeiten?

lg
 
Von der Bildhöhe kannst du doch die Höhe des Fensters abziehen und hast dann den Wert für top. Klappt natürlich nur, wenn man eine feste Breite nimmt, aber das sollte doch kein Problem sein, eine Mindestgröße des Bildes müsstest du doch bestimmen können, sind doch alles interne Clients. Und danach würde ich die Breite richten und dann klappt top = HöheBild minus HöhePopup.
 
Ok danke, ich versuche es mal.. Problem ist das es ca. 2000 Clients sind und dort jede erdenkliche Auflösung dabei ist :D
 
Sonst geht folgendes: Im aktuellen Dokument ein Div machen, das die gewünschte Breite und den Inhalt des Popus enthält. Schriftfarbe = Hintergrundfarbe damit man es nicht sieht. Davon nimmst du dann die offset Höhe, dann weisst du, wie der Browser den Inhalt rendern wird. Dann div wieder entfernen und BildHöhe minus offset Höhe rechnen und das als top nehmen.
 
Zurück
Oben