Prüfen, ob Explorerfenster mit Adresse xyz bereits geöffnet?
Oliver S.
- browser
Hi an alle,
ich hab da mal wieder eine Frage. Ist es möglich, festzustellen, ob ein Explorerfenster mit einer bestimmten Internetadresse bereits geöffnet ist?
Hintergrund: Ich habe eine Homepage, bei der in bestimmten Seiten ein Shop angewählt werden kann. Dieser Shop wird in einem neuen Fenster geöffnet. Wenn nun jemand zurück auf meine Seiten geht und einen der Links, die zum Shop führen, erneut anklickt, dann öffnet sich ein neues Fenster für den Shop. Wenn aber das alte Fenster noch geöffnet war, habe ich dann schon zwei Fenster mit dem Shopinhalt geöffnet. Das soll aber nicht sein. Besonders schlecht ist es, wenn schon jemand Artikel in den Warenkorb gelegt hat und ein zweites Fenster mit dem Shop geöffnet wird, da in dem Fenster der Warenkorb leer ist. Hat vielleicht jemand eine Idee? Ich hoffe, jemand hat eine Lösung für mich.
Danke Euch schon mal im Voraus.
MfG,
Oliver
Hallo,
ich hab da mal wieder eine Frage. Ist es möglich, festzustellen, ob ein Explorerfenster mit einer bestimmten Internetadresse bereits geöffnet ist?
http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/
Hintergrund: Ich habe eine Homepage, bei der in bestimmten Seiten ein Shop angewählt werden kann. Dieser Shop wird in einem neuen Fenster geöffnet.
Die Methode window.open(), mit der du das Fenster öffnest, gibt dir das window-Objekt des neuen Fensters zurück. Darüber kannst du unter anderem auch auf die Adresse zugreifen, welche momentan im Fenster geöffnet ist.
Wenn nun jemand zurück auf meine Seiten geht und einen der Links, die zum Shop führen, erneut anklickt, dann öffnet sich ein neues Fenster für den Shop. Wenn aber das alte Fenster noch geöffnet war, habe ich dann schon zwei Fenster mit dem Shopinhalt geöffnet. Das soll aber nicht sein.
Beim Anklicken des Links fragst du ab, ob das Fenster schon vorher einmal geöffnet wurde, das heißt ob die Variable, in der du dessen window-Objekt gespeichert hast, gefüllt bzw. definiert ist. Dann musst du auch Abfragen, ob das Fenster nicht geschlossen wurde (http://de.selfhtml.org/javascript/objekte/window.htm#closed).
Am Anfang:
fenster=false;
In der Funktion zum Beispiel:
if (!fenster || fenster.closed) {
fenster = window.open('shop.html', 'shopfenster');
fenster.focus();
}
Wenn der Shop auf einer anderen Domain liegt, hast du schlechte Karten. Dann ist das Auslesen der Adresse nicht möglich und auch die Abfrage, ob das Fenster geschlossen wurde, ist unter Umständen nicht möglich. Wenn der Besucher also im Popup-Fenster den Shop in Richtung einer anderen Seite verlässt, tritt derselbe Effekt auf.
Daher ist mir nicht klar, an welcher Stelle du die Adresse prüfen willst. Denn wenn das Fenster offen ist, musst du davon ausgehen, dass dein Shop darin betrachtet wird. In dem Fall kannst du location.href prüfen, brauchst es aber sowieso nicht, weil es nur darum ginge, ob das Fenster offen ist oder nicht. Wenn nicht (mehr) die Shop-Seite darin betrachtet wird, wäre das Auslesen der Adresse notwendig, um eventuell den Shop wieder anzunavigieren. Gerade in dem Fall ist es aber nicht möglich, auf location.href zuzugreifen...
Wieso muss es eigentlich ein zweites Fenster sein?
Mathias
Hi Mathias,
danke Dir erst einmal für Deine Antwort. Ich werde heute abend mal schauen, ob ich das irgendwie hinbekomme. Auf Deine Frage, warum ich den Shop in einem anderen Fenster öffne: Das liegt nicht an mir, das gibt das Freeware Shopprogramm so vor. Ich habe auch noch nicht gefunden, wo ich das eventuell beeinflussen kann (fange gerade erst an mich mit HTML usw. zu beschäftigen). Eventuell ist das bei der Vollversion nicht so, die habe ich aber noch nicht. Das Programm ist übrigens von der Seite http://www.net-markt.ch/zwahlen-informatik/default.htm. Na mal sehen, ob ich das irgendwie hinbekomme. Bei Schwierigkeiten würde ich mich wieder melden.
Gruß,
Oliver