NS4 div über ID aurufen

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
 
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:
PHP:
<script type="text/javascript">
c)
Was ist denn das für eine Kommentar-Syntax?
PHP:
<!--//
//-->
mag nicht wirklich falsch sein, aber
PHP:
<!--
//-->
ist zumindest HTML-Standard. :)

Ich hab' mal versucht, das alles ein wenig genauer zu setzen und bin jetzt bei folgendem Aufbau der Seite:
PHP:
<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>
(das </ script> natürlich immer zusammen - ist nur des Forums halber)
Vielleicht geht's ja, wenn alles ein wenig eindeutiger com Code her ist!?
Hab leider keinen NN 4.x hier um zu testen.

Geist
 
Ich nutze (immer) ein Dreamweaver Script, auch wenn ich sonst in Notepad scripte.

Dieses Script ist mit Netscape 4.75 getestet (und IE):

Code:
<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>
 

Neue Beiträge

Zurück