PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : netscape6 probleme mit alten java-scripts


doane1
23.04.2002, 19:38
HI,
ich bin hier ganz neu und ziemlicher Anfänger in Sachen Homepageerstellung. Leider musste ich nach meinem Umstieg auf Netscape6 feststellen, dass die meisten alten Java-scripts (z.B. Ufo verfolgt Mauszeiger usw.) in meinen Seiten nicht mehr funktionieren.
Gibt es da Möglichkeiten seitens des Browsers etwas zu ändern bzw. durch Umschreiben der Scripts?
Bitte um dringende Hilfe!
Danke, Thomas


Felix Kaiser
23.04.2002, 22:21
Poste den fehlerhaften Code einfach im JavaScriptforum. Oftmals liegt es daran, dass alte Skripte auf NN4 Layer oder IE spezifisches DHTML festgelegt sind. W3C DHTML gibts erst seit NN6 und IE5+.

doane1
24.04.2002, 14:11
Ach ja, das script schaut so aus, falls mir da jemand
helfen kann:

<script language=&quot;javascript1.2&quot; src=&quot;alien.js&quot;></script>
<nolayer>
<style id=&quot;NOF_STYLE_SHEET&quot;>
<!--
DIV#LayoutLYR { position:absolute; top:0; left:0; z-index: 1; visibility:inherit; }
DIV#Text4LYR { position:absolute; visibility:inherit; top:0; left:0; z-index:1 }
-->
</style>
</nolayer>

Bin über jede Hilfe dankbar!
Thomas

doane1
29.04.2002, 19:52
Die Datei &quot;alien.js&quot; sieht so aus:

var Ver4=parseInt(navigator.appVersion.charAt(0))>=4
var IE=navigator.appName.indexOf(&quot;Microsoft&quot;)!=-1
var al, imagesrc, ex=-32, ey=-32, x0=-32, y0=-32

function BewegeAlien()
{ // Neue Position des Alien berechnen
if (Math.abs(ex-x0)>=10) { x0+=Math.floor((ex-x0)*0.1) }
else if (ex!=x0) { x0+=Math.abs(ex-x0)/(ex-x0) }
if (Math.abs(ey-y0)>=10) { y0+=Math.floor((ey-y0)*0.1) }
else if (ey!=y0) { y0+=Math.abs(ey-y0)/(ey-y0) }

// entsprechende Grafik in Bezug zur Maus-Position waehlen
imagesrc=&quot;&quot;
if ( (ex<x0) && ( (x0-ex) > Math.abs(y0-ey)/2 ) )
{ imagesrc=&quot;alien_l.gif&quot;
if ( (x0-ex) < Math.abs(y0-ey)*2 )
{ if (ey<y0) imagesrc=&quot;alien_lo.gif&quot;
if (ey>y0) imagesrc=&quot;alien_lu.gif&quot;
}
}
if ( (ex>x0) && ( (ex-x0) > Math.abs(y0-ey)/2) )
{ imagesrc=&quot;alien_r.gif&quot;
if ( (ex-x0) < Math.abs(y0-ey)*2 )
{ if (ey<y0) imagesrc=&quot;alien_ro.gif&quot;
if (ey>y0) imagesrc=&quot;alien_ru.gif&quot;
}
}
if (imagesrc==&quot;&quot;)
{ if (ey<y0) imagesrc=&quot;alien_o.gif&quot;
if (ey>y0) imagesrc=&quot;alien_u.gif&quot;
if ((ex==x0)&&(ey==y0)) imagesrc=&quot;alien.gif&quot;
}

// Grafik und Position setzen
if (Ver4)
{ if (!IE)
{ document.AlienLayer.document.images.alien.src=imagesrc }
else document.all.AlienLayer.document.images.alien.src=imagesrc
}
al.left=x0-32
al.top=y0

setTimeout(&quot;BewegeAlien();&quot;,100)
}

function MeinMausEvent(e)
{ // Position des Maus-Cursors ermitteln
if (Ver4)
{ if (!IE)
{ ex=e.pageX
ey=e.pageY }
else
{ ex=event.clientX + document.body.scrollLeft
ey=event.clientY + document.body.scrollTop }
}
}

function ScriptSetup()
{ // Alle Alien-Grafiken laden
isIm = (document.images) ? 1 : 0
if (isIm)
{ arImLoad = new Array
(&acute;alien&acute;,&acute;alien_u&acute;,&acute;alien_o&acute;,&acute;alien_l&acute;,&acute;alien_r&acute;,
&acute;alien_lu&acute;,&acute;alien_lo&acute;,&acute;alien_ru&acute;,&acute;alien_ro&acute;)
arImList = new Array ()
for (counter in arImLoad)
{ arImList[counter] = new Image()
arImList[counter].src = arImLoad[counter] + &acute;.gif&acute;
}
}

// Globale Variablen setzen und Maus-Event initialisieren
if (Ver4)
{ if (!IE)
{ al=document.AlienLayer
document.captureEvents(Event.MOUSEMOVE)
}
else
{ al=document.all.AlienLayer.style }
document.onmousemove = MeinMausEvent
BewegeAlien()
}
}

function Copyright()
{ window.focus()
alert(&quot;nicht immer auf´n Kopf klicken&quot;) }

function ZeigeAlien()
{ // Setzen der Block-Level Container zur Anzeige der Grafiken
if(Ver4)
{ s =&acute;<DIV STYLE=&quot;visibility:hidden&quot;></DIV>&acute;
s+=&acute;<DIV ID=&quot;AlienLayer&quot; STYLE=&quot;position:absolute; &acute;
s+=&acute;top:-32; left:-32; width:32; height:32&quot;>&acute;
s+=&acute;<A HREF=&quot;javascript:Copyright();&quot;>&acute;
s+=&acute;<IMG NAME=&quot;alien&quot; SRC=&quot;alien.gif&quot; border=0>&acute;
s+=&acute;</A></DIV>&acute;
document.writeln(s)
}
}

window.onload = ScriptSetup
ZeigeAlien()

Felix Kaiser
29.04.2002, 20:45
Das Problem ist einfach folgendes: Für den IE sind IE4+ DHTML Funktionen im Dienst, document.all. Und für Netscape fest definiert die Layers. Die gibts aber in Netscape6 nicht mehr. Seit IE5 und NN6 steht eine vom W3C festgelegte Form des DHTML / DOM zur Verfügung. Ein ähnliches Skript, was bei Mac Flys Seite in Verwendung ist, hatte ich mal NN6 fähig gemacht, gab aber wohl beim Onlinestellen Probleme ?(

Kleiner Tipp: Schau dir mal die DHTML Beispiele in SelfHTML an, über das Node Objekt und Funktionen wie document.getElementById(). Versuchs erstmal selber :)

arpad
13.07.2004, 02:34
Hi, bin auch neu hier und habe ein ähnliches problem: Folgendes JS funktioniert mit IE und opera aber nicht mit Netscape:

<script language="javascript">

function abschicken() {
var name = form.name.value;
var vorname = form.vorname.value;
var strasse = form.strasse.value;
var ort = form.ort.value;
var plz = form.plz.value;
var tel = form.tel.value;
var interesse = form.interesse.value;
var mail = form.mail.value;
if(name == ''){alert('Bitte Namen eingeben!');document.form.name.focus();}
else if(vorname == ''){alert('Bitte Vornamen eingeben!');document.form.vorname.focus();}
else if(strasse == ''){alert('Bitte Strasse eingeben!');document.form.strasse.focus();}
else if(plz == ''){alert('Bitte PLZ eingeben!');document.form.plz.focus();}
else if(ort == ''){alert('Bitte Ort eingeben!');document.form.ort.focus();}
else if(mail == ''){alert('Bitte E-Mail Addresse eingeben!');document.form.land.focus();}
else if(interesse == ''){alert('Bitte Interesse eingeben!');document.form.interesse.focus();}
else self.document.form.submit();
}

function loeschen() {
form.name.value='';
form.vorname.value='';
form.strasse.value='';
form.ort.value='';
form.plz.value='';
form.tel.value='';
form.mail.value='';
form.interesse.value='';
form.kommentar.value='';
}

</script>wäre froh wenn mir wer helfen könnte


greed arpad

arpad
13.07.2004, 02:46
Hat sich erledigt, hab den Fehler soeben gefunden:

form.name.value-->falsch

document.form.name.value-->richtig

;) :D