Eva: N6 stellt popup fenster als alert dar

Hallo Leute,

Ich bin in Javascript eine Anfängerin und will über einem link, der eine Graphik ist, ein kleines popup-fenster mit Erklärungen öffnen, z.B.über

<a href="http://www.artists.at"  target = "_blank" onFocus="if(this.blur)this.blur()" ONMOUSEOVER="popup('<div>Standleitungen, Serverhousing, Netzwerke, Linux Support, Linux Schulungen, Firewalls, Server Clientwartung, Beratung</div>','FFFFFF')"; ONMOUSEOUT="kill()"><img src="artcom140x42pt.gif"  border="0"></a>

mit folgendem script:

<SCRIPT TYPE="text/javascript">
<!--

Xoffset=-60;    // modify these values to ...
Yoffset= 20;    // change the popup position.

var nav,old,iex=(document.all),yyy=-1000;
if(navigator.appName=="Netscape"){(document.layers)?nav=true:old=true;}

if(!old){
var skn=(nav)?document.dek:dek.style;
if(nav)document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=get_mouse;
}

function popup(msg,bak){
var content="<TABLE  WIDTH=150 BORDER=1 BORDERCOLOR=black CELLPADDING=2 CELLSPACING=0 "+
"BGCOLOR="+bak+"><TD ALIGN=center><FONT COLOR=black SIZE=1>"+msg+"</FONT></TD></TABLE>";
if(old){alert(msg);return;}
else{yyy=Yoffset;
 if(nav){skn.document.write(content);skn.document.close();skn.visibility="visible"}
 if(iex){document.all("dek").innerHTML=content;skn.visibility="visible"}
 }
}

function get_mouse(e){
var x=(nav)?e.pageX:event.x+document.body.scrollLeft;skn.left=x+Xoffset;
var y=(nav)?e.pageY:event.y+document.body.scrollTop;skn.top=y+yyy;
}

function kill(){
if(!old){yyy=-1000;skn.visibility="hidden";}
}

//-->
</SCRIPT>

Das funktioniert im IE und N4.5 gut, aber in N6 erscheint immer ein "alert" statt eines popup Fensters und nochdazu ist das <div></div> sichtbar.
Wie kann ich das ändern?
Grüße
Eva

  1. Hallo Eva,
    das Verhalten deines Scripts komt durch folgenden Code zustande:

    if(navigator.appName=="Netscape"){(document.layers)?nav=true:old=true;}

    if(old){alert(msg);return;}

    Wie kann ich das ändern?

    Das Script ist wahrscheinlich aus einer Zeit, als es noch keinen Netscape 6 gab, aber noch ältere Netscape-Browser, die des layer-Objekt nicht kannten. Die einfachste Möglichkeit wäre, zu probieren
    if(navigator.appName=="Netscape") nav=true;
    anstelle von
    if(navigator.appName=="Netscape"){(document.layers)?nav=true:old=true;}
    zu verwenden. Das geht aber vermutlich nur, wenn im Script keine layer-Objekte verwendet werden, weil die nur von Netscape bis Version 4.x unterstützt werden, aber nicht von Netscape 6. Falls es nach der Änderung JavaScript-Fehler gibt, wirst Du das Script wahrscheinlich etwas umfassender ändern müssen, aber probier erst mal die Variante.

    Gruß Lutz.

    1. Hallo Eva,
      das Verhalten deines Scripts komt durch folgenden Code zustande:

      if(navigator.appName=="Netscape"){(document.layers)?nav=true:old=true;}

      if(old){alert(msg);return;}

      Wie kann ich das ändern?

      Das Script ist wahrscheinlich aus einer Zeit, als es noch keinen Netscape 6 gab, aber noch ältere Netscape-Browser, die des layer-Objekt nicht kannten. Die einfachste Möglichkeit wäre, zu probieren
      if(navigator.appName=="Netscape") nav=true;
      anstelle von
      if(navigator.appName=="Netscape"){(document.layers)?nav=true:old=true;}
      zu verwenden. Das geht aber vermutlich nur, wenn im Script keine layer-Objekte verwendet werden, weil die nur von Netscape bis Version 4.x unterstützt werden, aber nicht von Netscape 6. Falls es nach der Änderung JavaScript-Fehler gibt, wirst Du das Script wahrscheinlich etwas umfassender ändern müssen, aber probier erst mal die Variante.

      Gruß Lutz.

      Hallo Lutz,
      funktioniert leider nicht, fürchte ich werde das script wirklich umfasender ändern müssen.
      Trotzdem Danke
      VG, Eva