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?
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=" ";
}
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.
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.
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–.
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
„description“ war NICHT deklariert (var =
description:wink:.
Ein dummer Flüchtigkeitsfehler, den ich nicht bemerkt hatte.
Diverse weitere Semikola fehlten (i–.
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 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.
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.
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?
Sorry, ich war vorhin wohl noch etwas im Halbschlaf 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.
hast du nicht !
Sorry, ich war vorhin wohl noch etwas im
Halbschlaf 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…)