Javascript: Ne Art Werbebanner

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/javascript_ne_art_werbebanner_135368/page_1 - zur Vollversion wechseln!


jb schrieb am 26.01.2005 um 09:54

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?


watchout schrieb am 26.01.2005 um 14:10

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 schrieb am 26.01.2005 um 14:24

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 schrieb am 27.01.2005 um 01:05

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 schrieb am 27.01.2005 um 02:01

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 schrieb am 27.01.2005 um 04:29

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 schrieb am 27.01.2005 um 05:32

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 schrieb am 27.01.2005 um 06:35

OK, werd mir das mal anschaun, danke für den Tip!

Der IE ist aber scheinbar schleißig genug programmiert, damit es funktioniert :eek:




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026