ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
288
288
EMPFEHLEN
-
04.10.02 12:24 #1
- Registriert seit
- Jan 2002
- Beiträge
- 20
Hallo zusammen,
mein Problem:
Bei einem MouseOver über ein space.gif sollen ein Navigationslayer und ein Hintergrundbildlayer (unter der Nav), über die Funktion auf() bzw. auf_4() für die 4erBrowserversionen aufpoppen.
Folgender Code steht im HEAD:
<SCRIPT LANGUAGE=JavaScript>
<!--//
isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;
function auf()
{
layer = document.getElementById("bg");
layer.style.visibility = "visible";
layer = document.getElementById("navi");
layer.style.visibility = "visible";
}
function zu()
{
layer = document.getElementById("bg");
layer.style.visibility = "hidden";
layer = document.getElementById("navi");
layer.style.visibility = "hidden";
}
function auf_4()
{
code = 'document.bg.visibility = "visible"';
code = 'document.navi.visibility = "visible"';
e = evalPlus(code);
}
function zu_4()
{
code = 'document.bg.visibility = "hidden"';
code = 'document.navi.visibility = "hidden"';
e = evalPlus(code);
}
function evalPlus (dacode)
{
if (navigator.appName != "Netscape")
{
dacode = dacode.replace('document.', 'document.all.');
dacode = dacode.replace('.visibility', '.style.visibility');
}
rv = eval (dacode);
return (rv);
}
//-->
</script>
Das ist der Aufruf über das space.gif:
<div style="position:absolute;top:0;left:0;width:170;height:100%;z-index:10;">
<script language=javascript>
<!--//
if (isNS4 || isIE4) document.write('<a href=# onMouseOver=auf_4()><img src=[%Template%]/images/space.gif border=0 width=170 height=100%></a>');
else document.write('<a href=# onMouseOver=auf()><img src=[%Template%]/images/space.gif border=0 width=170 height=100%></a>');
//-->
</script>
</div>
So sehen die DIVs im BODY aus:
<script language=javascript>
<!--//
if (isNS4 || isIE4) document.write('<div id=bg style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%;background-color:#FFFFFF; onMouseOut=zu_4() onMouseOver=auf_4()>');
else document.write('<div id=bg style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%;background-color:#FFFFFF; onMouseOut=zu() onMouseOver=auf()>');
//-->
</script>
blabla
</div>
<script language=javascript>
<!--//
if (isNS4 || isIE4) document.write('<div id=navi style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%; onMouseOut=zu_4() onMouseOver=auf_4()>');
else document.write('<div id=navi style=margin:0px0px0px0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%; onMouseOut=zu() onMouseOver=auf()>');
//-->
</script>
blabla
</div>
Wenn ich das ganze im NS4 starte, erscheint zwar der Navigationslayer, jedoch kein Hintergrundbildlayer!
Weiß jemand warum?
Ich leider nicht...
Tschö und (hoffentlich) Danke,
Tobi
-
04.10.02 17:51 #2
Hy

a)
Benutzt du eigentlich beim Code-schreiben auch Gänsefüßchen?
b)
"<SCRIPT LANGUAGE=JavaScript>" solltest du schnell vergessen und dir lieber angewöhnen:
c)PHP-Code:<script type="text/javascript">
Was ist denn das für eine Kommentar-Syntax?
mag nicht wirklich falsch sein, aberPHP-Code:<!--//
//-->
ist zumindest HTML-Standard.PHP-Code:<!--
//-->

Ich hab' mal versucht, das alles ein wenig genauer zu setzen und bin jetzt bei folgendem Aufbau der Seite:
(das </ script> natürlich immer zusammen - ist nur des Forums halber)PHP-Code:<html>
<head>
<title>rechner</title>
<script type="text/javascript">
<!--
isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;
function auf() {
layer = document.getElementById("bg");
layer.style.visibility = "visible";
layer = document.getElementById("navi");
layer.style.visibility = "visible";
}
function zu() {
layer = document.getElementById("bg");
layer.style.visibility = "hidden";
layer = document.getElementById("navi");
layer.style.visibility = "hidden";
}
function auf_4() {
code = "document.bg.visibility = 'visible'";
code = "document.navi.visibility = 'visible'";
e = evalPlus(code);
}
function zu_4() {
code = "document.bg.visibility = 'hidden'";
code = "document.navi.visibility = 'hidden'";
e = evalPlus(code);
}
function evalPlus (dacode) {
if (navigator.appName != "Netscape") {
dacode = dacode.replace("document.", "document.all.");
dacode = dacode.replace(".visibility", ".style.visibility");
}
rv = eval (dacode);
return (rv);
}
//-->
</ script>
</head>
<body>
<div style="position:absolute;top:0;left:0;width:170;height:100%;z-index:10;">
<script type="text/javascript">
<!--
if (isNS4 || isIE4) {
document.write("<a href='#' onMouseOver='auf_4()'><img src='x.jpg' border='0' width='170' height='100%'></a>");
} else {
document.write("<img src='x.jpg' border='0' width='170' height='100%' onMouseOver='auf()'>");
}
//-->
</ script>
</div>
<script type="text/javascript">
<!--
if (isNS4 || isIE4) {
document.write("<div id='bg' style='background-color:#000000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%' onMouseOut='zu_4()' onMouseOver='auf_4()'></div>");
} else {
document.write("<div id='bg' style='background-color:#000000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:170px;z-index:2;width:420;height:100%' onMouseOut='zu()' onMouseOver='auf()'></div>");
}
//-->
</ script>
<script type="text/javascript">
<!--
if (isNS4 || isIE4) {
document.write("<div id='navi' style='background-color:#FF0000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%' onMouseOut='zu_4()' onMouseOver='auf_4()'></div>");
} else {
document.write("<div id='navi' style='background-color:#FF0000;margin:0px 0px 0px 0px;visibility:hidden;position:absolute;top:0px;left:200px;z-index:3;width:390;height:100%' onMouseOut='zu()' onMouseOver='auf()'></div>");
}
//-->
</ script>
</body>
</html>
Vielleicht geht's ja, wenn alles ein wenig eindeutiger com Code her ist!?
Hab leider keinen NN 4.x hier um zu testen.
GeistAh, these are the days
Let them roll as they roll
And be all you are
Because you're beautiful
Material
-
04.10.02 18:17 #3
Ich nutze (immer) ein Dreamweaver Script, auch wenn ich sonst in Notepad scripte.
Dieses Script ist mit Netscape 4.75 getestet (und IE):
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
<html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> <!-- <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); // --> function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; } obj.visibility=v; } } //--> </script> </head> <body bgcolor="#FFFFFF" text="#000000"> <div id="Layer1" style="position:absolute; width:200px; height:115px; z-index:1; left: 156px; top: 34px; background-color: #000000; layer-background-color: #000000; border: 1px none #000000; visibility: hidden"></div> <a href="#" OnClick="MM_showHideLayers('Layer1','','show')">Einblenden</a> <br> <a href="#" OnClick="MM_showHideLayers('Layer1','','hide')">Ausblenden</a> </body> </html>Die Signatur befindet sich aus Platzgründen auf der Rückseite!
Ähnliche Themen
-
Zustand über mehere Funktionsaufrufe sichern über arguments.callee
Von Thomas Darimont im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 15.01.11, 21:45 -
Silverlight Methode über Javascript aurufen
Von martin_ch im Forum .NET WPF & SilverlightAntworten: 0Letzter Beitrag: 08.07.10, 09:44 -
WLAN (Netgear) über 3 Wohnebenen – Signalverstärkung über zusätzlichen AP?
Von Fuzzzi im Forum NetzwerkeAntworten: 3Letzter Beitrag: 04.07.10, 12:54 -
FKT in einer bestimmter Zeit aurufen
Von kokoriko im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 27.09.07, 15:31 -
STRUTS-verschiedene Sprachen über Button (nicht über Browser)
Von Jack5551 im Forum JavaAntworten: 3Letzter Beitrag: 23.04.07, 16:07





Zitieren
Login





