Der Martin: Script funktioniert im Firefox, aber nicht im IE7

Beitrag lesen

Hallole,

ich habe eine merkwürdige Konstellation. Mein Javascript funktioniert im Firefox, im Internet Explorer (7.0) jedoch nicht.

das finde ich soo außergewöhnlich nicht.

Gibt es eine Möglichkeit, im Internet Explorer rauszufinden, wo der Fehler steckt (ein umgebendes Javascript wird ohne Probleme ausgeführt, nur das nicht, was genau auf der Seite aufgerufen wird). Testausgaben haben gezeigt, dass die Funktion schon immer aufgerufen wird.

Kann man nur generell sagen: Probehalber vor und nach einer "verdächtigen" Stelle eine Kontrollausgabe mit alert() machen. Das ist zwar mühsam, weil man nur in recht kleinen Schritten weiterkommt - aber wenn's denn sein muss ...
Wobei ich mich natürlich erst einmal frage: Gibt es keinerlei Fehlermeldung?
Die sind zwar im IE mit Vorsicht zu genießen, aber es wäre wenigstens mal ein Anhaltspunkt.

www.datadruck.com --> dann auf Referenzen klicken

Ähm, du meinst http://www.datadruck.com/? Nee, wohl kaum da diese Seite bis auf eine Grafik leer ist, da steht nirgends was von "Referenzen". Es war etwas mühsam, bis ich herausgefunden habe, dass du vermutlich http://www.datadruck.com/webseite/referenzen.php meinst. Gib doch bitte gleich die richtige Adresse an, anstatt solche Ratespielchen zu veranstalten.
Solche Brückenseiten wie hier deine Startseite sind übrigens recht lästig.

function referenzzufallszahlengenerator(min, max)
{
         var zahl = min - 1;
         while (zahl < min)
               {
               zahl = Math.floor(Math.random()*(max+1));
               }
         return zahl;
         }

Die Logik dieser Funktion erschließt sich mir ehrlich gesagt nicht. Ich vermute, du möchtest eine ganzzahlige Zufallszahl im Intervall [min..max] haben? Dann nimm doch den Klassiker:
  zahl = min + Math.floor(Math.random()*(max-min+1));

titelreferenzzuersetzen = document.getElementById('referenz'+referenzzuersetzen).innerHTML;
         // text extrahieren, um danach dann im array zu suchen
         startindex = titelreferenzzuersetzen.indexOf("src=")+18;
         endindex = titelreferenzzuersetzen.lastIndexOf("" alt");
         zusuchen = titelreferenzzuersetzen.substring(startindex,endindex);

Auweia. Das würde ich ganz anders lösen: Ich würde mir mit getElementsByTagName('img')[referenzzuersetzen] eine Referenz (hier im technischen Sinn!) auf das img-Element holen und dann einfach dessen src- und alt-Eigenschaft neu setzen. Keine Hampelei mit innerHTML.

referenzersetztdurch = referenzzufallszahlengenerator(0, <?php echo $z-1;?>);

Und wenn das wirklich in deinem Javascript-Code steht, hast du noch ein viel größeres Problem. Dann funktioniert nämlich dein PHP nicht - andernfalls wäre <?php ... ?> durch die Ausgabe des Scripts ersetzt.

for (i = 0; i < <?php echo $z;?>; i++)

Dito.

Ich bin nicht sicher, wo nun tatsächlich dein Problem liegt, weil ich deinen JS-Code reichlich kompliziert und verworren finde. Wie gesagt: Ich empfehle hier den Ansatz über DOM, der hier sogar erheblich einfacher wäre.

So long
 Martin

--
Schildkröten können mehr über den Weg berichten als Hasen.