Sven Rautenberg: Bild links unten einfügen JS

Beitrag lesen

Moin!

Der code schaut nun folgendermassen aus:
<script LANGUAGE="JavaScript">
<!--
netscape = (document.layers) ? 1:0

Netscape 4 wird hier wahr liefern, alle anderen Browser falsch.

goodIE = (document.all) ? 1:0

IE (jede Version) wird hier wahr liefern, ebenso Opera im IE-Mode.

opera = (document.getElementById) ? 1:0

Opera, IE 5+, Mozilla und Netscape 6 werden hier wahr liefern.

mozilla = (document.getElementById) ? 1:0

Opera, IE 5+, Mozilla und Netscape 6 werden hier wahr liefern.

if (netscape) {
   var x1 = 0;
   var y1 = window.innerHeight - 392;

Das führt nur Netscape 4 aus.

}
if (goodIE) {
   x1 = 0;
   y1 = document.body.clientHeight- 392;

Das führen alle IEs aus, und Opera im IE-Mode.

}
if (opera) {
   var x1 = 0;
   var y1 = window.innerHeight - 392;

Das führen alle Browser außer IE 4 und Netscape 4 aus.

}
if (mozilla) {
   var x1 = 0;
   var y1 = window.innerHeight - 392;

Das führen alle Browser außer IE 4 und Netscape 4 aus.

}

Tja, da wird Code irgendwie doppelt und dreifach ausgeführt. Das könnte das Problem sein, sollte zumindest berücksichtigt werden.

Und deine Browsererkennung ist eigentlich keine Browsererkennung (muß es auch nicht sein), sondern nur eine Objekterkennung. Dann mußt du aber nicht zweimal getElementById erkennen, sondern nur einmal, und entsprechend auch nur einmal einen Programmteil dafür schreiben.

Ich verwende immer diese drei Zeilen:
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
v6 = (document.getElementById)? true:false

Merke: IE5 fällt sowohl unter ie4, als auch unter v6, also die Codeausführung besser mit
if (v6) ...
else if (ie4)...
else if (ns4)...

machen. Dann wird garantiert nur ein Teil ausgeführt.

Ich hab' auch noch eine Browserfenstergrößenerkennung für dich. Pack diesen Code in deine Funktion:

var sizex=0;
  var sizey=0;
  if (window.innerWidth)
  {
    (window.innerWidth)?sizex=window.innerWidth:sizex=0;
    (window.innerHeight)?sizey=window.innerHeight:sizey=0;
  }
  else if (document.body)
  {
    (document.body.offsetWidth)?sizex=document.body.offsetWidth:sizex=Math.max(sizex,0);
    (document.body.offsetHeight)?sizey=document.body.offsetHeight:sizey=Math.max(sizey,0);
  }

Dann hast du hinterher in den Variablen sizex und sizey die Größe des Fensters, schlimmstenfalls auch 0 (Null). Bei den von dir verwendeten Browsern funktioniert es aber (und auch auf dem Mac).

Er funzt nun auf allen browsern ausse MSIE !
Weshalb versteht nun msie den code nicht mer?

Fehlermeldung?

Oder hast Du fieleicht noch ein anderer link für Dummies wie mich parat?

Schon mal nach "Javascript für Dummies" gesucht? http://www.google.com/search?q=Javascript+für+Dummies&sourceid=opera&num=50&ie=utf-8&oe=utf-8 Oder nach einem entsprechenden Tutorial, einer Einführung oder dergleichem? Hast du das Javascript-Kapitel in SelfHTML schon mal von Anfang bis Ende durchgelesen?

- Sven Rautenberg