Wie klappt die Einbindung von JavaSkript bei einem skriptgeneriertem Fenster?

Onsemeliot

Grünschnabel
Wie klappt die Einbindung von JavaSkript bei einem skriptgenerierten Fenster?

Einen herzlichen Gruß an alle!

Ich wäre demjenigen sehr verbunden, der mir bei dem folgenden Problem helfen kann und will:

Mein Vorhaben
Ich habe eine Bildergalerie über ein Javascript-Array generiert, so dass eine Großansicht davon (inklusive Infotext) bei Klick auf ein Bild in einem eigenen Fenster erscheint. So weit funktioniert auch bereits alles.

Mein Problem
Mein Problem ist nun, dass nichts mehr klappt, sobald ich mit "document.write()" das externe Javascript auch in das über dieses Skript erzeugte Fenster einbinden will, damit ich im neuen Fenster immer ein Bild weiter bzw. ein Bild zurück gehen kann, ohne jedesmal das neue Fenster schließen zu müssen um auf der Ausgangs-Galerie-Seite das entsprechende Bild auszuwählen.

Meine Bitte
Könnt Ihr mir den Fehler nennen oder einen Weg veraten, wie ich das besser umsetzen könnte?

Zusätzliche Infos
Hier Der Link zur momentanen online stehenden Version, die leider nicht klappt:
http://onsemeliot.piranho.com/wc_gallery.htm

Und hier folgt mein Script der externen JS-Datei:
Code:
aBildnamen = new Array("q01", "q02", "q03", "...");
texte = new Array("t1", "t2", "t3", "...");

function fenster(ziel)
{
  if (ziel >= aBildnamen.length-1) {
    ziel = 0;
  }

  if (ziel < 0) {
    ziel = aBildnamen.length-1;
  }

  zufall = texte[Math.floor(6*Math.random())];
  inhalt = texte[ziel];

  bildfenster = window.open("", "Big_View", "width=700,height=800,locationbar=no,menubar=no,resizable=no,status=no");
  bildfenster.document.write("<html>\n\t<head>\n\t\t<title>Work Camp 2003 in Schiozawa: Big Sized Image</title>\n");
  bildfenster.document.write("\t\t<link rel=stylesheet type='text/css' href='wc_style.css'>\n");
  bildfenster.document.write("\t\t<script language='JavaScript' src='fenster.js' type='text/javascript'></script>\n\t</head>\n\n");
  bildfenster.document.write("\t<body>\n\t\t<table width='100%' height='100%' border='0' cellspacing='0' cellpadding='0'>\n\t\t\t<tr>\n\t\t\t\t<td height='680px' align='center' valign='center' class='farbe'>\n");
  bildfenster.document.write("\t\t\t\t\t<img src='ig/"+aBildnamen[ziel]+".jpg' border='0' />\n");
  bildfenster.document.write("\t\t\t\t</td>\n\t\t\t</tr>\n\n\t\t\t<tr>\n\t\t\t\t<td align='center' valign='top'>\n");
  bildfenster.document.write("\t\t\t\t\t<p class='normtext'><br />"+inhalt+"</p>\n");
  bildfenster.document.write("\t\t\t\t</td>\n\t\t\t</tr>\n\n\t\t\t<tr>\n\t\t\t\t<td align='center' valign='bottom'>\n");
  bildfenster.document.write("\t\t\t\t\t<a href='wc_gallery.htm' onclick='fenster("+(ziel-1)+"); return false;'><< previous image</a>\n\t\t\t\t\t - - - \n\t\t\t\t\t<a href='wc_gallery.htm' onclick='fenster("+(ziel+1)+"); return false;'>next image >></a>\n");
  bildfenster.document.write("\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\n\t<body>\n<html>");
  bildfenster.document.close();
}
 
Zuletzt bearbeitet:
Du musst das Slash im <script>-Tag, welchen du hineinschreibst, maskieren... sonst interpretiert das Skript den Tag als seinen eigenen.
Code:
bildfenster.document.write("\t\t<script language='JavaScript' src='fenster.js' type='text/javascript'><\/script>\n\t</head>\n\n");
 
Herzlichen Dank für den Tipp!

Ich werd's so schnell wie möglich ausprobieren und dann Bescheid geben...

Liebe Grüße
Onsemeliot
 
Leider hat dieser Backslash weder on- noch offline etwas geändert... :(

Hat vielleicht noch jemand eine andere Idee wie ich weiterkommen könnte?
 
Der neue Fehler kommt von
Code:
aBildnamen[ziel]
Fehlermeldung: ist kein objekt...in Zeile 73.

Jeder vernünftige Browser hat ein Tool dabei, welches dir Skriptfehler anzeigt ;)

Warum das kein Objekt ist, hab ich jetzt allerdings nicht nachgeschaut.
 
Hallo fatalus!

Wegen dieser Fehlermeldung habe ich mich auch schon herumgeärgert. Was ich allerdings wieder einmal nicht kapiere ist der Umstand, dass das Script offline - wenn ich es ebenfalls über den IE ansehe - völlig problemlos funktioniert. Kann das Problem in diesem Fall denn überhaupt noch ein Scriptfehler sein?

Im Übrigen habe ich die Fehlermeldung schon umgangen. Es betrifft nur eine harmlose Schleife, die einen Wert zu viel überprüft hat. Das sollte keine Auswirkung auf das restliche Script haben, da der "Fehler" nur beim Aufbau der Seite gemeldet wurde, der ja ohnehin immer problemlos ausgeführt wurde.
Der Fehler kann nach meinem Erachten nur im externen Javascript "fenster.js" liegen, dass mit dem Klick auf eines der Bilder aufgerufen wird und welches ich bereits gepostet habe.

Mir ist noch aufgefallen, dass alles klappt, so lange ich nicht im neu erzeugten Fenster die selbe JS-Datei referenziere. Könnte es sein, dass das nicht funktioniert, weil das Script bereits auf sich selbst referenziert, während es noch ausgeführt wird?

Es erscheint mir etwas sonderbar zwei nahezu identische externe JS-Dateien zu erzeugen, die wechselweise auf einander verweisen, damit es nicht zu dieser Verwicklung kommt. Da muss es doch auch noch einen vernünftigeren Weg geben...

Ratlose Grüße
Onsemeliot

p.s.:
Vielleicht sollte ich die Bildergalerie schließlich doch noch in Flash umsetzen. Irgendwie macht das weniger Probleme. Dabei wollte ich doch so gerne Javascript einsetzen, da ich es gerade erst lerne. :rolleyes:
 
Zuletzt bearbeitet:
Im Übrigen habe ich die Fehlermeldung schon umgangen. Es betrifft nur eine harmlose Schleife, die einen Wert zu viel überprüft hat. Das sollte keine Auswirkung auf das restliche Script haben, da der "Fehler" nur beim Aufbau der Seite gemeldet wurde, der ja ohnehin immer problemlos ausgeführt wurde.

Also bei dem, was online ist, kommt der Fehler immer noch, ....beseitige ihn, und dann sagt dir der Skriptdebugger, wo der nächste zu finden ist.....

ein Fehler in einer Funktion beendet bspw. komplett die Ausführung derselben.
 
Ok, jetzt habe ich das Script auch online aktualisiert. Aber glaube mir, wenn ich schreibe, dass das nichts ändert, da mir der Skriptdebugger im Browser offenbar keine Fehler einer eingebundenen Scriptdatei meldet... :(

Das neue Browserfenster gibt nur einfach keine Rückmeldung mehr und bleibt als leeres Fenster hängen, dass sich nur mehr über den Taskmanager ausschalten lässt.

Ich kann den Fehler im Script also - zumindest über den IE - nicht orten...
 
Dass das Fenster hängenbleibt, hatte ich auch... aktuell läuft es aber... die Galerie und das Popup mit dem Original.... trotz eines neuen Skriptfehlers.

Wenn es nur Online hapert, könnte das vielleicht an den diversen Skripts liegen, welche da von piranho eingebunden werden.
 
Bei Dir klappt das Skript, das momentan online steht?
Ich verwende Win XP Professional und den IE6. Darf ich fragen was Du verwendest?

Und welchen neuen Fehler bekommst Du angezeigt?
 

Neue Beiträge

Zurück