Javascript funktioniert nicht mit IE4!

Hallo!

Warum funktioniert folgendes Skript mit NC4, aber nicht mit IE4? Das Skript zeigt Fotos mit dazugehöriger Beschreibung an. IE4 bringt bei description = new Array folgenden Fehler: Objekt unterstützt diese Eigenschaft oder Methode nicht! Was muß ich ändern, damit es läuft?

var i = 1

images = new Array
images[1] = „img/image01.jpg“

images[19] = „img/image19.jpg“

description = new Array
description[1] = „description1“

description[19] = „description19“

function gallery()
{
if (i == 1)
{
document.gallery.desc.value = description[1];
document.gallery.previous.value=" ";
}
}

function previmg()
{
if (i != 1)
{
i –
document.img.src = images[i];
document.gallery.desc.value = description[i];
document.gallery.next.value = „Next“;
}
if (i == 1)
{
document.gallery.previous.value=" ";
}

}

function nextimg()
{
if (i != 19)
{
i ++
document.gallery.previous.value=„Previous“;
image = images[i];
document.img.src = image;
document.gallery.desc.value = description[i];
}

if (i == 19)
{
document.gallery.next.value=" ";
}
}

function pickrand()
{
var imagenumber = 19;
var randomnumber = Math.random();
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1;
var randimage = images[rand1];
document.img.src = randimage;
document.gallery.desc.value = description[rand1];
i = rand1;

if (i == 1)
{ document.gallery.previous.value=" ";
}

else
{ document.gallery.previous.value=„Previous“;
}

if (i == 19)
{ document.gallery.next.value=" ";
}

else
{ document.gallery.next.value=„Next“;
}
}

function firstimg()
{
i = 1
document.img.src = images[i];
document.gallery.desc.value = description[i];
document.gallery.previous.value=" ";
document.gallery.next.value=„Next“;
}

function lastimg()
{
i = 19
document.img.src = images[i];
document.gallery.desc.value = description[i];
document.gallery.next.value=" "; document.gallery.previous.value=„Previous“;
}

Danke für jede Hilfe.

Tanja

Hallo!

Warum funktioniert folgendes Skript mit
NC4, aber nicht mit IE4? Das Skript zeigt
Fotos mit dazugehöriger Beschreibung an.
IE4 bringt bei description = new Array
folgenden Fehler: Objekt unterstützt diese
Eigenschaft oder Methode nicht! Was muß
ich ändern, damit es läuft?

var i = 1

Leider habe ich nicht so viel Zeit die Geschichte durchzutesten, aber auf den ersten Blick würde ich folgendes ändern:

var i = 1

var i = 1;

UND besser noch dazu:

var images = new Array();

wobei ich die Verwendung von „images“ als Variablenname für nicht gelungen halte.

images = new Array

Das sollte wohl eher so heissen:

images = new Array();

images[1] = „img/image01.jpg“

und das wohl eher so:

images[1] = „img/image01.jpg“;

Die Nett(!)scapes lassen so etwas leider oft durchgehen. Der IE halt nicht. Wie gesagt: Wenig Zeit, den Rest habe ich mirr nicht mehr angeschau! Ich würde einfach noch einmal checken, ob Du Dich im Rest des Scriptes an der JavaScript-Syntax orientiert hast.

Gruss

Ralf-Jürgen

Hallo!

Warum funktioniert folgendes Skript mit
NC4, aber nicht mit IE4? Das Skript zeigt
Fotos mit dazugehöriger Beschreibung an.
IE4 bringt bei description = new Array
folgenden Fehler: Objekt unterstützt
diese
Eigenschaft oder Methode nicht! Was muß
ich ändern, damit es läuft?

var i = 1;

var images = new Array();
images[1] = „img/image01.jpg“;

Ich habe den Code nach Deinen Angaben verändert und hinter jeden Befehl einen Strichpunkt gemacht, jedoch bringt IE immer noch die gleiche Fehlermeldung.

Was mich wirklich wundert ist, daß der Fehler nur bei dem description-Array und nicht bei dem images-Array auftritt, ich habe doch genau die gleiche Array-Deklaration verwendet. Eine Änderung der Variablennamen „images“ und „description“ brachte auch keine Hilfe, es handelt sich hierbei also nicht um reservierte Namen.

Tanja

So, nun habe ich es durchgeschaut. Folgende Fehler hat IE nicht durchgehen lassen:

„description“ war NICHT deklariert (var = description:wink:. Deshalb konnte IE das Objekt nicht ansprechen. Diverse weitere Semikola fehlten (i–:wink:.

Also alles Geschichten, die nach JavaScript 1.2 vorgeschrieben sind. Grundsätzlich macht es Sinn die Vorgaben von JavaScript auch tatsächlich einzuhalten. Netscape toleriert den Kram leider auch so. In Java würdest Du eine solche source nicht einmal über den ersten Compilerdurchgang bringen.

Ich schicke Dir das lauffähige Script per e-mail. Ein ähnliches Script (nur mit windows) findest Du auf einer meiner sites:
http://www.combatflight.de

Viel Spass noch!

Gruss

Ralf-J.

Hallo!

„description“ war NICHT deklariert (var =
description:wink:.

Ein dummer Flüchtigkeitsfehler, den ich nicht bemerkt hatte.

Diverse weitere Semikola fehlten (i–:wink:.

Hatte ich noch verbessert.

Also alles Geschichten, die nach
JavaScript 1.2 vorgeschrieben sind.
Grundsätzlich macht es Sinn die Vorgaben
von JavaScript auch tatsächlich
einzuhalten. Netscape toleriert den Kram
leider auch so.

Ich habe mich bis jetzt noch nicht ausreichend mit Javascript beschäftigt. Normalerweise programmiere ich in Java, VB,…

Ich schicke Dir das lauffähige Script per
e-mail.

Danke, sehr nett von Dir.

Ciao, Tanja

Ich habe den Code nach Deinen Angaben
verändert und hinter jeden Befehl einen
Strichpunkt gemacht, jedoch bringt IE
immer noch die gleiche Fehlermeldung.

Gut, dann ist der Fehler ja schon einmal beseitigt. Dann schaue ich mir den Rest jetzt einmal an.

Eine Änderung

der Variablennamen „images“ und
„description“ brachte auch keine Hilfe, es
handelt sich hierbei also nicht um
reservierte Namen.

Das es keine Hilfe brachte ändert nichts daran, das „images“ ein Unterobjekt von „document“ ist, zumindest nach den gängigen Referenzen. So etwas darf auch „bilder“ „pictures“ „ente“ „blub“ und so weiter genannt werden, wieso also ein Array unbedingt so, wie ein JavaScript-Unterobjekt genannt werden muss ist mir nicht klar. Mein Hinweis sollte helfen, dass aufgrund solcher Ungeschicklichkeiten Fehler vermieden werden.

also bis später dann

Gruss

Ralf-J.

Hallo!

Das es keine Hilfe brachte ändert nichts
daran, das „images“ ein Unterobjekt von
„document“ ist, zumindest nach den
gängigen Referenzen

Ich weiß das, ich hätte das Array auch nicht so genannt. Es kam nur daher, daß ich Teile des Codes aus einem Javascript-Tutorial kopiert habe. Ich werde es mal ändern.

Tanja

hi Tanja,
ich kanns im mom leider nicht ausprobieren, da die IE4-Rechner bei
mir noch nicht am intranet hängen, aber
versuchs zuallererst einfach mal mit Kleinschreibung.

images = new array ;

Aus diesem blöden Grund klappte bei
mir auch einiges nicht.

Gruß
magnus

Hallo!

Warum funktioniert folgendes Skript mit
NC4, aber nicht mit IE4? Das Skript zeigt
Fotos mit dazugehöriger Beschreibung an.
IE4 bringt bei description = new Array
folgenden Fehler: Objekt unterstützt diese
Eigenschaft oder Methode nicht! Was muß
ich ändern, damit es läuft?

var i = 1

images = new Array
images[1] = „img/image01.jpg“

images[19] = „img/image19.jpg“

description = new Array
description[1] = „description1“

description[19] = „description19“

function gallery()
{
if (i == 1)
{

document.gallery.desc.value =
description[1];

document.gallery.previous.value="
";
}
}

function previmg()
{
if (i != 1)
{
i –
document.img.src =
images[i];

document.gallery.desc.value =
description[i];

document.gallery.next.value = „Next“;
}
if (i == 1)
{

document.gallery.previous.value="
";
}

}

function nextimg()
{
if (i != 19)
{
i ++

document.gallery.previous.value=„Previou s“;
image = images[i];
document.img.src = image;

document.gallery.desc.value =
description[i];
}

if (i == 19)
{

document.gallery.next.value=" ";
}
}

function pickrand()
{
var imagenumber = 19;
var randomnumber = Math.random();
var rand1 = Math.round(
(imagenumber-1) * randomnumber) + 1;
var randimage = images[rand1];
document.img.src = randimage;
document.gallery.desc.value =
description[rand1];
i = rand1;

if (i == 1)
{
document.gallery.previous.value="
";
}

else
{
document.gallery.previous.value=„Previou s“;
}

if (i == 19)
{
document.gallery.next.value=" ";
}

else
{
document.gallery.next.value=„Next“;
}
}

function firstimg()
{
i = 1
document.img.src = images[i];
document.gallery.desc.value =
description[i];
document.gallery.previous.value="
";

document.gallery.next.value=„Next“;
}

function lastimg()
{
i = 19
document.img.src = images[i];
document.gallery.desc.value =
description[i];
document.gallery.next.value="
";
document.gallery.previous.value=„Previou s“;
}

Danke für jede Hilfe.

Tanja

Hallo!

versuchs zuallererst einfach mal mit
Kleinschreibung.

images = new array ;

Ich habe doch beide Namen für die Arrays klein geschrieben:

images = new array
description = new array

Außerdem funktioniert das Images-Array einwandfrei, mit dem IE4 werden die Bilder angezeigt, nur die Beschreibungen dazu nicht!?!

Tanja

Hi … :smile:
hast du nicht ! (s.u.) aber egal.
läuft die page schon irgendwo auf deinem
server ? dann versuch ich nochmal nen
blick draufzuwerfen …


var i = 1

images = new Array
images[1] = „img/image01.jpg“

images[19] = „img/image19.jpg“

description = new Array
description[1] = „description1“

description[19] = „description19“


Hallo!

hast du nicht !

Sorry, ich war vorhin wohl noch etwas im Halbschlaf :smile: Danke für Deine Hilfe. Ich habe es ausprobiert, aber IE4 brachte dann eine neue lustige Fehlermeldung: „array ist undefiniert“, dieses Mal schon bei images = new array. Also muß Array wohl doch groß geschrieben werden denn immerhin funktioniert images = new Array, IE4 meckert nur bei description = new Array.

läuft die page schon irgendwo auf deinem
server ?

Ich habe sie schnell mal auf meinen WWW-Server gestellt:
http://www.fh-furtwangen.de/~schaett/test/fuwa.htm

Tanja

Hallo!

hast du nicht !
Sorry, ich war vorhin wohl noch etwas im
Halbschlaf :smile: Danke für Deine Hilfe. Ich
habe es ausprobiert, aber IE4 brachte dann
eine neue lustige Fehlermeldung: „array
ist undefiniert“,

---- SNIP —

Na klar, sehr lustig, aber das Array ist halt auch nicht definiert (Siehe meine Antwort auf Tanja’s Anfrage…)

:wink:

Gruss

Ralf-Jürgen