Rollover-Effekte im Netscape
Michael T.
- javascript
0 Michael T.0 Martin0 Michael T.0 Martin
Habe ein Problem mit Rollover-Effekten im Netscape Navigator:
Ich wollte mit Hilfe von Divisions (<div></div>) eine Grafik positionieren und darauf dann den OnMouseOver-Effekt anwenden, der auch hier im SelfHTML beschrieben wird. Aber leider funktioniert das nicht innerhalb einer Division! Ich bekomme immer die Fehlermeldung: "window.document.images has no properties" Wer kann mir helfen??? Bin schon fast am verzweifeln... danke im voraus!
Habe ein Problem mit Rollover-Effekten im Netscape Navigator:
Ich wollte mit Hilfe von Divisions (<div></div>) eine Grafik positionieren und darauf dann den OnMouseOver-Effekt anwenden, der auch hier im SelfHTML beschrieben wird. Aber leider funktioniert das nicht innerhalb einer Division! Ich bekomme immer die Fehlermeldung: "window.document.images has no properties" Wer kann mir helfen??? Bin schon fast am verzweifeln... danke im voraus!
Hat sich erledigt. Ich bin fündig geworden... (Augen auf, dann klappt das schon)
Tja Michael (heisst Du wohl),
1. CODE wäre hilfreich.
2. Hättest Du die rechte Maustaste im IEP nicht "blockiert", hätte ich mir den Code besorgt (was möchtest Du damit eigentlich verhindern??). Den Navigator mache ich deswegen nicht auf (der ignoriert nämlich das Abfangen des rechten Maustastenklicks).
Der MS-Debugger allerdings zeigt den Code trotzdem an.
OK, bei Deiner Umsetzung wird es sehr aufwendig, da Netscape - im Gegensatz zu IEP - den Inhalt JEDES Divs als eigenes document interpretiert. Daher beginnt die Bilder-Nummerierung bei Netscape in jedem Div=Document bei 0! Und Du musst eine Möglichkeit schaffen, jedes Div spezifisch zu adressieren, d.h. Du müsstest jedem Div erst eine spezifische ID geben.
Also für erstes Bild:
<div id="Bild1"....><a href="../willkommen/willkommen.html" onMouseOver="bildwechsel('Bild1',0,main1)"
onMouseOut="bildwechsel('Bild1',0,main0)">
<img src="button-main0.gif" border="0" align=right></a>
</div>
die Funktion muss lauten:
function bildwechsel(Divname,bildnr,bildobjekt)
{
if(document.layers)
document[Divname].document.images[bildnr].src = bildobject.src;
else window[Divname].document.images[bildnr].src = bildobject.src;
}
Hab's nicht ausprobiert - sollte aber klappen.
3. Wenn Du schon den Quellcode Deines Framesets vor neugierigen Blicken schützen möchtest, dann mache es den Leuten doch etwas schwerer -> Minimum: 2000 Leerzeilen!
Martin
Tja Michael (heisst Du wohl),
CODE wäre hilfreich.
Hättest Du die rechte Maustaste im IEP nicht "blockiert", hätte ich mir den Code besorgt (was möchtest Du damit eigentlich verhindern??). Den Navigator mache ich deswegen nicht auf (der ignoriert nämlich das Abfangen des rechten Maustastenklicks).
Der MS-Debugger allerdings zeigt den Code trotzdem an.
OK, bei Deiner Umsetzung wird es sehr aufwendig, da Netscape - im Gegensatz zu IEP - den Inhalt JEDES Divs als eigenes document interpretiert. Daher beginnt die Bilder-Nummerierung bei Netscape in jedem Div=Document bei 0! Und Du musst eine Möglichkeit schaffen, jedes Div spezifisch zu adressieren, d.h. Du müsstest jedem Div erst eine spezifische ID geben.
Also für erstes Bild:
<div id="Bild1"....><a href="../willkommen/willkommen.html" onMouseOver="bildwechsel('Bild1',0,main1)"
onMouseOut="bildwechsel('Bild1',0,main0)">
<img src="button-main0.gif" border="0" align=right></a>
</div>die Funktion muss lauten:
function bildwechsel(Divname,bildnr,bildobjekt)
{
if(document.layers)
document[Divname].document.images[bildnr].src = bildobject.src;
else window[Divname].document.images[bildnr].src = bildobject.src;
}Hab's nicht ausprobiert - sollte aber klappen.
- Wenn Du schon den Quellcode Deines Framesets vor neugierigen Blicken schützen möchtest, dann mache es den Leuten doch etwas schwerer -> Minimum: 2000 Leerzeilen!
Martin
»»
danke, martin. hab zwar schon eine andere möglichkeit gefunden, die angeblich funktionieren soll, aber deine variante probier ich auch noch. auch danke für die anderen tipps...
ciao...
michael
Hi Michael,
bin neugierig: wie sieht die andere möglichkeit denn aus??
Gruß, Martin
Hi Michael,
bin neugierig: wie sieht die andere möglichkeit denn aus??
Gruß, Martin
hallo martin.
ich bin hier in der selfhtml-doku fündig geworden. und zwar auf der site http://www.teamone.de/selfhtml/sfausles/tsfa_tcg.htm#a4
scheint wirklich zu klappen. habe aber erstmal nur ein kleines beispiel damit probiert, das funktioniert bisher einwandfrei:
<html>
<head>
<title>Dynamische grafische Buttons</title>
<script language="JavaScript">
<!--
Normal1 = new Image();
Normal1.src = "off.gif";
Highlight1 = new Image();
Highlight1.src = "on.gif";
Normal2 = new Image();
Normal2.src = "off.gif";
Highlight2 = new Image();
Highlight2.src = "on.gif";
function Bildwechsel ( BildName, BildObjekt ) {
if ( document.all ) {
switch ( BildName ) {
case 'licht' : window.document.all.licht.src = BildObjekt.src; break;
}
}
else {
if ( document.layers ) {
switch ( BildName ) {
case 'licht' : window.document.DIV0.document.licht.src = BildObjekt.src; break;
}
}
}
}
//-->
</script>
<style type="text/css">
<!--
#DIV0 {
position:absolute; top:200px; left:300px; width:100px; height:100px;
}
//-->
</style>
</head>
<body>
<div id="DIV0">
<a href="http://www.altavista.de"
onMouseOver="Bildwechsel ( 'licht', Highlight1 )"
onMouseOut="Bildwechsel ( 'licht', Normal1 )">
<img src="off.gif" name="licht" alt="AltaVista" border="0"></a><br>
</div>
</body>
</html>
bis dann...
...michael