• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datei nur einmal automatisch laden

buzi

Neues Mitglied
Hallo
Die Website, die ich (Anfänger) z.Z. entwickle, hat einen Frameset mit den Frames home, info und pdf. Von der in home geladenen home.html aus kann man eine von acht gleichartigen Dateien im Frame info laden. Von jeder dieser Dateien aus kann man eine von mehreren PDF-Dateien im Frame pdf laden. Ziel ist es, nur beim ersten Laden einer der PDF-Dateien zusätzlich im Frame home die Hilfsdatei keineliste.html zu öffnen.
Nach derzeitigem Stand öffnet die Hilfsdatei immer wieder, bis die in info geladene Datei nochmals oder eine der anderen sieben Datei geladen wird. Das ist der Fehler.
Um das zu realisieren, setze ich in index.html ein Cookie, dessen Inhalt beim Schließen der Hilsdatei geändert wird. Beim Öffnen jeder der PDF-Dateien wird der Cookie-Inhalt abgefragt, und nur, wenn er noch nicht geändert wurde, erscheint die Hilfsdatei. Die Scripts sehen wie folgt aus:

Code:
/* in index.html */
  document.cookie = "hilfetextein=" + "ja"; 

/* in scripte.js */
var cname;
var cvalue;
function getCookies () {
  cookies = {};
  var all = document.cookie;
  if (all === "")
  return cookies;
  var list = all.split("; ");
  for(var i = 0; i < list.length; i++) {
  var cookie = list[i];
  var p = cookie.indexOf("=");
  cname = cookie.substring(0,p);
  cvalue = cookie.substring(p+1);
  cvalue = decodeURIComponent(cvalue); /
  cookies[cname] = cvalue;
  }
  return cookies;
}
getCookies();

function lhilfeein (){
  if (cvalue == "ja") {
  open("../keineliste.html", "home");
  } else {
  open("../home.html", "home"); }
}

function homeein(){
  if (cvalue == "ja") {
  document.cookie = "hilfetextein=" + "nein";
  open("home.html", "home");
  } else {
  open("home.html", "home"); }
}

/* in den acht Dateien zum Aufruf einer PDF-Datei insgesamt 180 gleichartige Links wie */
  <a href="datei1.pdf" onclick="abkAktuell = 'datei1abk.html'; lhilfeein();">Datei 1</a><br>
  <a href="datei2.pdf" onclick="abkAktuell = 'datei2abk.html'; lhilfeein();">Datei 2</a><br>

/* usw.
(Bei Aufruf einer PDF-Datei wird durch Setzen der globalen Variablen abkAktuell das Öffnen
der jeweils passende Abkürzungsliste vorbereitet; das funktioniert und hat mit dem 
beschriebenen Problem wohl nichts zu tun)
*/

/* in der Hilfsdatei keineliste.html */
  <p><a  href="home.html" target="home" onclick="homeein(); return false;">
  Homepage wieder einblenden</a></p>

Falls das von Bedeutung ist: keineliste.html befindet sich zusammen mit home.htmlim Hauptverzeichnis, die acht gleichartigen Dateien zusammen mit den von dort jeweils aufrufbaren PDF-Dateien in jeweils einem Unterverzeichnis davon.

Das Fehlerbild nochmal mit anderen Worten:
- Wenn ich nach dem Öffnen der Website in einer der acht Dateien auf Datei 1 klicke, öffnet sich erstmalig die Hilfsdatei keineliste.html. (Das ist OK.)
- Mit Schließen der Hilfsdatei (= Einblenden der Homepage) wird über die Funktion homeein(); der Cookie-Wert geändert. (Das funktioniert auch, kann ich im Browser FF und GC nachsehen.)
- Wenn ich dann Datei 2 anklicke, öffnet sich die Hilfsdatei wieder. (Das ist nicht OK.)
- Erst, wenn ich die Datei mit den Links Datei 1, Datei 2 usw. nochmals oder eine der anderen sieben gleichartigen Dateien lade, öffnet sich die Hilfsdatei bei Anwahl einer PDF-Datei nicht mehr.

Was habe ich falsch gemacht?

mfg

P.S. Dass die Verwendung von Framesets out ist, braucht ihr nicht zu erwähnen, das weiß ich.
 
Werbung:
Was habe ich falsch gemacht?

Es gibt zwei Arten von Content. Die erste wird direkt beim Laden der Seite inkludiert. Dafür bietet sich eine serverseitige Scriptsprache wie PHP an. Die zweite wird nach dem Laden asynchron in die Seite inkludiert. Das wiederum macht man per JavaScript, allerdings in Form von Ajax. Um welche Art Content geht es in deinem Fall?

Den Ansatz da oben mit Framesets, JavaScript und Cookies kannst du löschen. Der bringt dich nicht weiter.
 
Dank, Tronjer, dass Du mir helfen wolltest. Wie gesagt, ich bin Anfänger und muss erst einmal mehr von JavaScript verstehen, bevor ich mich mit Ajax oder PHP beschäftige. Ich verzichte deshalb zunächst darauf, dass in der geöffneten Liste das Öffnen der Hilfsdatei unterdrückt wird und bitte den Benutzer per Alert-Box, die Liste nochmals anzuwählen. Das ist nicht elegant, aber pragmatisch. Wenn ich mehr gelernt habe, werde ich mich um eine elegantere Lösung mit PHP oder Ajax bemühen.

mfg
 
Werbung:
Zurück
Oben