innerWidth / clientWidth auf Safari

NetBull

Erfahrenes Mitglied
Hi Leute,

im Zuge des Erlernens von JavaScript stoße ich immer wieder gegen die unterschiedlichen JavaScript versionen der unterschiedlichen Browser. Momentan macht mir der Safari Probleme!

Beispiel 1: Die Aufrufende Seite:
Code:
<script type="text/javascript" src="onLoadPage.js"></script>
  	</head>
  
  <body onload="onLoadPage();">

Beispiel 2:
Code:
var isTest = true;
	var documentW = null;
	var documentH = null;
	function onLoadPage()
	{
		documentW = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
		documentH = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);		
		testOutput();
	}
	
	function testOutput()
	{
		if(isTest)
		{
			document.write("Screen-Resolution<br>");		
			document.write(documentW);
			document.write(" x ");
			document.write(documentH);
		}
	}

Firefox, InternetExpl, Google Chrome und Opera machen es richtig, lediglich Safari gibt mir die Vars nicht aus. Oder sie scheinen leer.

EDIT: Im Safari-Debugger bekommen beide Variablen einen Wert, werden aber nicht ausgeben, auch das x wird nicht ausgegeben... Obwohl alle Zeilen durchlaufen werden,...

LG NetBu||
 
Zuletzt bearbeitet:
Da du ja erst am JavaScript lernen bist, hier ein Hinweis: vergiss document.write.

Zum Testen kannst du mal per "alert" die Variablen ausgeben lassen. Wenn du sie auf der Seite ausgeben lassen willst, dann musst du das via DOM machen. Also entweder greif auf ein Element im Dokument zu (z.B. "body") und ändere den Inhalt oder erstelle ein neuen Element und füge es dem Dokument hinzu.


Javascript:
function testOutput()
    {
        if(isTest)
        {
            var out = document.createElement('div');

            out.innerHTML = 'Screen-Resolution<br> ' + documentH + 'x ' + documentH;

            document.getElementsByTagName('body')[0].appendChild(out);
        }
    }
 
OK, die Vars werden ausgegeben.....

folgender Code:
Code:
function testOutput()
	{		
		if(isTest==true)
		{				
			document.write( "Screen-Resolution: " );			
			document.write( documentW );
			document.write( " x " );
			document.write( documentH );			
			alert(documentH + ", " +  documentW);
		}
	}

Schreibt die Werte beide in die MSG Box aber nicht ins Document...
Was mach ich da falsch?

LG NetBu||
 
Hab die Ausgabe über document.getElementById ... .innerHTML in ein Div Tag geleitet, nun geht es. Scheinbar hab ich mir mit Document.write immer alles überschrieben.
 

Neue Beiträge

Zurück