[Javascript] Rollover - ich bin am Ende !

value

Commander
Dabei seit
Dez. 2003
Beiträge
2.114
Hi Leute,

sowas hab ich bisher noch nicht erlebt ...

eine intro page mit einem einfach Bild und einem Rollover ...

Seht es euch selbst an, wo zur Hölle darin der Fehler liegt.

HTML:
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

	<script language="javascript">

	if (document.images) {
			var jinju_org = new Image();
				jinu_org.src = "Jinju_org.png";
			var jinu_rollover = new Image();
				jinju_rollover.src = "Jinju_rollover.png";
			}
	</script>
	
</head>

<body bgcolor="#FFFFFF">

<a href="http://www.jinju.de/index.htm"
	onMouseOver="if (document.images)
				document.bildhalter.src = jinju_rollover.src;"
	onMouseOut="if (document.images)
				document.bildhalter.src = jinju_org.src;">
				
<img src="Jinju_org.png" name="bildhalter" width="1198" height="159" border="0">				
</a>

</body>
</html>
mit dem if (document.images) überprüfe ich lediglich ob das objekt in dem browser vorhanden ist, wenn ja, werden die dynamischen bilder angezeigt, wenn nein das statische.


Vielen Dank, value

Edited by Steffen: Bitte das nächste Mal selbständig die vbTags für HTML-Code verwenden!
 
Zuletzt von einem Moderator bearbeitet:

Rika

Lt. Junior Grade
Dabei seit
Okt. 2003
Beiträge
276
1. In JavaScript werden sämtliche DOM-Objekte über ihren Namen angesprochen, in deinem Falle über "bildhalter".

2. Wenn document.images dem Browser nicht bekannt sind, dann auch keine Event-Handler. Damit ist die Abfrage eigentlich unnötig.

3. Von HTMl-Syntax hast du auch wenig Ahnung. Seit wann hat denn das Script-Tag ein Attribut namens Language? Es gibt doch eh nur JavaScript als einzige zulässige Script-Sprache. Und Text in JavaScript wird grundsätzlich in Hochkommas gefasst.

4. Und dass man bei den Event-Handlern maximal rein einzeiligen Code übergeben darf und deshlab alles in Funktionen auslagert, die einen Wert ungleich false rückliefern müssen, packt, hat dir wohl auch noch niemand erzählt.

Wie wär's denn damit?

HTML:
<script type="text/javascript">

if (document.images) {
var preload1 = new Image();
preload1.src = 'Jinju_org.png';
var preload2 = new Image();
preload2.src = 'Jinju_rollover.png';
}

function rolloverin()
{ if (document.images)
  { document.bildhalter.src='Jinju_rollover.png'; }
  return 0; }

function rolloverout()
{ if (document.images)
  { document.bildhalter.src='Jinju_org.png'; }
  return 0; }

</script>

<a href="http://www.jinju.de/index.htm"
onMouseOver="rolloverin();" 
onMouseOut="rolloverout();">
<img src="Jinju_org.png" name="bildhalter" width="1198" height="159" border="0">
</a>
Edited by Steffen: Bitte das nächste Mal selbständig die vbTags für HTML-Code verwenden!
 
Zuletzt von einem Moderator bearbeitet:

value

Commander
Ersteller dieses Themas
Dabei seit
Dez. 2003
Beiträge
2.114
1. ich weiß :o

2. das bezweckt das browser die document.image ignorieren das statische bild darstellen, besser als gar kein bild

3. das script tag hat das language attribut um zb eine bestimmte javascript version anzugeben, oder wenn es wirklich jemand braucht vbscript, jscript, was auch immer ...
es ist überflüssig in dem fall, wirklich störend finde ich es nicht ;)

4. das die event handler nur eine Zeile entgegennehmen wusste ich wirklich nicht.

Wie auch immer, herzlichen Dank für deine etwas rauhe, aber zielführende Hilfe :)

Gruß, value
 

Rika

Lt. Junior Grade
Dabei seit
Okt. 2003
Beiträge
276
a) Lies mal beim W3C nach, schau dir den HTML Validator an - es gibt kein Language-Attribut.

b) Kein Browser wertet es aus. Diejenigen, die sinnvollerweise nur JavaScript können, nehmen auch an, dass im Script-Bereich auch JavaScript steht. Der einzige Browser, der so dumm ist, auch andere proprietäre Script-Sprachen zu interpretieren, versucht ohnehin über mehr oder weniger gutes Parsen die Script-Sprache per Hand zu ermitteln, und ignoriert das Language-Attribut völlig. Da kann im Header VBScript stehen und er frisst es trotzdem als JScript. Da kann im Header JavaScript stehen und er akzeptiert trotzdem in JavaScript ungültige JScript-Objekte.

c) Kein rauhe Art, sondern nur eine Mitteilung der Art: Bitte zuerst und vor allem gründlich recherchieren, bevor man fragt. :-)
 

[UPS]Erazor

Lieutenant
Dabei seit
Sep. 2002
Beiträge
753
Zitat von Rika:
4. Und dass man bei den Event-Handlern maximal rein einzeiligen Code übergeben darf und deshlab alles in Funktionen auslagert, die einen Wert ungleich false rückliefern müssen, packt, hat dir wohl auch noch niemand erzählt.
Das is Bullshit. Dafür gibts ja das Semikolon! Man macht es aber zum Zweck der Übersichtlichkeit per Funktion.
 
Top