Christian Kruse: Probleme bei Netscape (div-layer wird nicht dargestellt)

Beitrag lesen

Hi,

Dieses mal betrifft es eine durch Javascript erzeugte
Kreisbewegung von drei Links um ein bestimmtes Bild. Es klappt
prima mit dem Internet Explorer, nur Natscape scheint absout
nichts damit anfangen zu können obwohl dieses script zusätlich
für Netscape programmiert worden ist. Liegt das an der Version
6.0 des Netscape N. oder gibt es einen Tippfelher oder sonstiges?

Die JS-Engine des NN6 Beta Preview 1 ist noch mehr als nur in den
Kinderschuhen; DHTML-Elemente werden, um genau zu sein, noch fast
gar nicht unterstützt.
Wenn du testen möchtest, ob deine Scripts auch auf dem NN 6 laufen
werden, lad dir den Mozilla bei http://www.mozilla.org
runter; der M16 ist (meiner Meinung nach) ein riesen Schritt nach
vorn (M16 != Mozilla 16, M16 == Mozilla Milestone 16).
Ach ja, guck dir auch mal die Doku zu JS 1.5 an (http://www.mozilla.org/js/js15.html),
denn der Mozilla (und damit auch wohl der NN6 ,) ) werden JS 1.5
unterstützen ,)

Hier der Programmcode (Ihr könnt ihn ruhig ausprobieren, indem
Ihr ihn einfach kopiert.):

Uiii, das ist ja großzügig ,)

[...]

function Abfrage()
{
  if (navigator.appName=='Netscape' && navigator.appVersion.charAt(0)>='4')

Ich gehe aufgrund dieser Zeile mal davon aus, das dein Script unterm
NN4.x auch nicht läuft (was es auch gar nicht kann).

window.document.logo.left=breite/2-Bildbreite/2;
       window.document.logo.top=hoehe/2-Bildhoehe/2;

Hier ist schon ein Fehler: auf Layer kann man im NN nur über das
Layer-Objekt zugreifen; richtig müßte es also so heißen:

window.document.layers['logo'].left = breite / 2 - Bildbreite / 2;
window.document.layers['logo'].top = hoehe / 2 - Bildhoehe / 2;

window.document.neu.left=(r * Math.cos(a*(pi/180))) + breite/2-Bildbreite/2;
  window.document.neu.top=(r * Math.sin(a*(pi/180))) + hoehe/2-Bildhoehe/2;
  window.document.impressum.left=(r * Math.cos((a+120)*(pi/180))) + breite/2-Bildbreite/2;
  window.document.impressum.top=(r * Math.sin((a+120)*(pi/180))) + hoehe/2-Bildhoehe/2;
  window.document.feedback.left=(r * Math.cos((a+240)*(pi/180))) + breite/2-Bildbreite/2;
  window.document.feedback.top=(r * Math.sin((a+240)*(pi/180))) + hoehe/2-Bildhoehe/2;

Hier überall auch; einfach mal das Layer-Objekt einfügen, wie oben
gezeigt.

<div id="neu" style="position: absolute; left:-100px; top:-100px; z-index:1;">

ID ist eine IE-Option; der NN möchte eine NAME-Option haben:

<div name="neu" id="neu" style="position:absolute; left:-100px; top:-100px; z-index:1;">

<div id="impressum" style="position: absolute; left:-100px; top:-100px; z-index:1;">

hier auch wieder:

<div name="impressum" id="impressum" style="position: absolute; left:-100px; top:-100px; z-index:1;">

<div id="feedback" style="position:absolute; left:-100px; top:-100px; z-index:1;">

Und wieder:

<div id="feedback" name="feedback" style="position:absolute; left:-100px; top:-100px; z-index:1;">

<div id="logo" style="position: absolute; left:-100px; top:-100px; z-index:0;">

*gähn*

<div name="logo" id="logo" style="position: absolute; left:-100px; top:-100px; z-index:0;">

<div style="position:absolute; left:582px; right:0px; bottom:0px; z-index:0;">

muss ich noch was sagen? ,)

Der NN möchte, wie gesagt, in divs immer eine name-Option und
die Angabe "position:absolute" haben, damit sie für ihn als
Layer gelten. ,)

Alles in allem: Schau dir auch mal die Unterlagen zu JavaScript im NN
an; der Code war, so wie er da stand, mehr oder weniger NN-Syntax
im IE-Stil bzw. sogar IE-Syntax.

mfg
CK1

P.S.: Kreisende Links mögen ja ganz schön sein, aber es nervt echt -
hast du schonmal versucht, einen Link zu klicken, der alle 75ms
die Position wechselt? ,)