"We are back" « oc.at

Javascript: Ne Art Werbebanner

jb 26.01.2005 - 09:54 558 7
Posts

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3518
Hab auf meiner Seite ne Art Werbebanner, bei dem nach einer bestimmten Zeit das Bild und der dort hinterlegte Link ausgetauscht werden, das Ganze rennt in ner Endlosschleife durch.

Unter dem IE funktioniert alles wunderbar, nur unter Firefox wechselt das Bild und der Link nicht und bekomm ich ne Fehlermeldung wenn ich mir das in der Javascript-Konsole ansehe.

Die Fehlermeldung besagt, daß das Objekt, das geändert werden soll (in dem Fall der Link) nicht definiert ist.

Hier die entsprechenden Zeilen aus meinem Script:



Zitat
<a name="Werbung" href="http://www.xyz.at" target="_blank"><img name="Werbung_Bild" src="bilder/banner/xyz.jpg" border="0" align="center" alt="http://www.xyz.at">

Dann weiter unten im JS-Bereich:

Werbung_Bild.src = b[i].src;
Werbung.href = h[i];
Werbung_Bild.alt= h[i];

Bei der Zeile Werbung.href=h[i]; wird der Fehler angezeigt.
Wie definiere ich das Objekt jetzt richtig?
Bearbeitet von jb am 26.01.2005, 09:57

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Was sollen wir dir jetzt anhand von 3 Zeilen Code sagen?

Was ist b, was is h, woher kommt i, und was is es. wo hast du werbung_bild definiert, wo werbung,... sind nur ein paar fragen...

badbuthappy

Bloody Newbie
Registered: Nov 2002
Location: Salzburg
Posts: 40
oder hast du im firefox einfach javascript deaktiviert bzw beschränkt.. gibt ja die möglichkeit. Oder die firewall zu hart eingestellt das die so sachen gar net erlaubt...

wenns im IE geht und im firefox nicht gibz ja mehr möglichkeiten..

CROWLER

Powerbunny
Avatar
Registered: Nov 2000
Location: aufWean
Posts: 1893
Zitat von watchout
Was sollen wir dir jetzt anhand von 3 Zeilen Code sagen?

Was ist b, was is h, woher kommt i, und was is es. wo hast du werbung_bild definiert, wo werbung,... sind nur ein paar fragen...


lol

poste doch einfach den ganzen code aus dem du das rauskopiert hast (böse annahme ich weisz)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ie verwechselt bei einigen gelegenheiten und einigen versionen auch gerne id und name.

korrekter weise solltest du ein getElementByID() verwenden, getElementByName() geht auch, ist aber im zweifel nicht eindeutig.

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3518
So, hier mal das ganze Script, etwas gekürzt (normalerweise sinds mehr Bilderm aber zum Verständnis reichen auch 3 denk ich mal).

Im Array b wird die Bild-URL gespeichert, im Array h der Link.
i ist einfach nur ein Schleifenzähler, sieht man aber unten alles.

Javascript darf eigentlich so weit alles, hab da nix eingeschränkt.


Zitat
<a href="http://www.xyz.com" target="_blank" name="Werbung"><img name="Werbung_Bild" src="bilder/xyz.jpg" border="0" align="center" alt="http://www.xyz.com"></a>

<script language="JavaScript">
<!--

var b = new Array();
var h = new Array();
var timeout=4000;
b[0] = new Image();
b[0].src="bilder/xyz.jpg";
h[0] = "http://www.xyz.com";
b[1] = new Image();
b[1].src="bilder/abc.jpg";
h[1] = "http://www.abc.at";
b[2] = new Image();
b[2].src="bilder/def.jpg";
h[2] = "http://www.def.at";

var i = 0;

function Animation()
{ with(window)
{ if(i > 2) i = 0;
Werbung_Bild.src = b[i].src;
Werbung.href = h[i];
Werbung_Bild.alt= h[i];
i = i + 1;
window.setTimeout("Animation()", timeout);
}
}
window.setTimeout("Animation()", timeout);

//-->
</script>

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Ist auch klar warum. Du nimmst an, dass wenn du einem Element den Namen "Werbung" gibst, es im JavaScript eine Variable "Werbung" gibt, die dann dieses repräsentiert. Nur ist das nicht so.

Selbst wenn dem so wäre, dann müsste aber die Variable "Werbung" ein Array sein, denn wie Atrox schon geschrieben hat ist ein "name" nicht eindeutig in HTML, nur eine "id".

Also musst du dir erst das HTML-Element-Objekt per "getElementbyId()" oder "getElementByName()" holen. Ausreichende Referenz sollte dir hiezu selfhtml bieten.

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3518
OK, werd mir das mal anschaun, danke für den Tip!

Der IE ist aber scheinbar schleißig genug programmiert, damit es funktioniert :eek:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz