also für mich ergibt das einen Sinn: Innerhalb eines Elements kann deine Variable einen anderen Wert haben, als ausserhalb. Bei dem <img> ist der onMouseOver innerhalb eines Ankers, ebenso wie das Bild. Damit ist für den onMouseOver "test" das, was es im Anker eben ist: Das Bild.
Das stimmt ja so nicht, das Bild kann auch ausserhalb stehen, irgendwo im Dokument.
Du könntest höchstens versuchen, ob eine "komplette" Referenz auf deine Variable mit getElementsByName (also angefangen bei document oder window) hier eine unterscheidung bringt...
Jaja, das geht, wie gesagt, es gibt window.test und document.images.test.
Nur das mnchmal das eine genommen wird und wenn ein image oder form vorhanden ist das andere.
Diese Fragen dürften vor allem für Leute interessant sein, die fertige Scripte in ihre Seite einsetzen wollen, aber nicht besonders auf die verwendeten Variablennamen achten! Warum muss in einem Script die Variable auch immer gleich global definiert werden?? Ich habe mir angewöhnt Funktionen zu definieren, innerhalb derer Variablen mir "var xxx = ...; " definiert werden, damit sie außerhalb der Funktion nicht existieren.
Nicht das ich sehr darauf achte Variabeln lokal zu definieren.
Aber in größeren Skripten verwendest du durchaus z.b. globale Objekte um eben z.b. in einem Event eine Ereignis auszulösen. Insofern ist der Fall nicht unwahrscheinlich, das du ein HTML Element benennst und ein JS Objekt und wenn diese zufällig den gleichen Namen haben bekommst du plötzlich ein Problem, da die übliche Schreibweise onclick="meinObj.tu_was();" nicht funktioniert (wenn z.b. ein Bild 'meinObj' heißt). Das läßt sich natürlich vermeiden, wenn man den Event per JS einfügt, da innerhalb des Skriptblocks das nicht passiert.
Struppi.