Javascript im Link zusammen mit Website aufrufen

Goya

Mitglied
Thread Starter
Dabei seit
18.07.2011
Beiträge
87
Reaktionspunkte
0
Hallo.

Ich habe folgende Frage:

Ich habe eine Website auf der sich ein snippet Javascript befindet. Dies wird per Klick auf der Seite aufgerufen.

Nun möchte ich dieses Stück JS schon im Link aufrufen, sodass es automatisch aktiviert wird wenn man die Seite betritt, ohne es anklicken zu müssen. Am Quelltext der Seite selbst möchte ich nichts ändern, die muss bleiben wie sie ist.

Code:
<a href = "javascript:void(0);" onclick = "javascript:JS.showPopup('http://www.domain.com/my_form/');">Form aufrufen!</a>

http://www.domain.com/seite-mit-js

Das erste ist der JS Aufruf auf der Seite. Das zweite der Link zur Seite selbst. In diesen muss der Aufruf mit verbaut werden.

Weiss jemand Rat wie ich das am besten hinbekomme?
 
Sobald das DOM neu geladen wurde, sind alle vorherigen JS Aufrufe futsch. D.h. alles was du vor dem Aufruf der neuen Seite machst, geht verloren.

Die Lösung zu diesem Problem nennt sich AJAX. D.h. du musst den Seiteninhalt der neuen Seite über AJAX per JavaScript nachladen. Nur dann kann das Ergebnis vorher ausgeführten JS Codes erhalten bleiben.

Wenn du allerdings auf der Hauptseite JS Code ausführen willst, kurz bevor ein echtes Popup (neues Browserfenster) geöffnet wird, dann kannst du deinen Code in der selben Funktion ausführen, die auch das Popup öffnet.

Erklär doch bitte nochmal mit anderen Worten, was genau du machen möchtest.
 
Hallo. Vielen Dank erstmal für die Antwort.

Auf meiner Domain gibt es eine Unterseite. Dort befindet sich ein Link. Klickt man diesen öffnet sich ein JS Popup mit einem Formular.

Jetzt möchte ich in meine Navigation einen Link einbauen der nach klicken die betreffende Seite öffnet und zusätzlich gleich das Formular Popup aufmacht.
 
Puh, das ist aber alles andere als Benutzerfreundlich :/ .

Wie in meinem 1. Ansatz aber schon steht, müsstest du genau dafür den Navigationslink per AJAX abrufen und dann mittels JavaScript die Seiteninhalte tauschen. Ohne massiven Eingriff in deine Seitenstruktur ist das aber nicht machbar. Ähnlich schwierig wäre es, im Quelltext der Zielseite (wo der Link mit PopUp drin ist), den Referer (also die Seite, von der der Benutzer kommt) auszulesen um dann zu entscheiden, ob das PopUp automatisch geöffnet werden soll oder nicht.

Alles in Allem ziemlich eklig. Meiner Meinung nach solltest du wenn möglich nach einer Lösung suchen, die das gesamte PopUp obsolet macht. Viele Browser blocken das sowieso und die Nutzer bei denen es noch aufgeht werden sich ärgern. Auch wenn sie die Funktion eigentlich nutzen wollen. PopUps sind gelernt und werden durchweg als negativ bewertet.
 
Hi.

Was du aus der Ferne alles so auf Anhieb feststellen kannst, Respekt. :)

Aber mal ernsthaft, es geht hier nicht um Werbe Pop Ups sondern um ein Formular. Das lässt sich jetzt so einfach nicht umbauen, einfach weil es ins gesamte Konzept der Seite gehört.

Ich verstehe nicht das es nicht möglich ist ein JS einfach zusammen mit einem Link aufzurufen.
 
und es ist wirklich nicht möglich im Body-Tag ein onload-Event einzutragen? Ich meine das ist ja kein großer Eingriff in die Seite oder?
 
Auch ein Formular in einem PopUp ist ein PopUp. Und PopUps mag der User nicht. Daher meine Abneigung ;) . Aber was nicht anders geht, geht nicht anders.
 
Hallo wegus, wie meinst du das genau? Es ist ja so das wenn die betreffende Seite normal aufgerufen wird, das Popup nicht automatisch geöffnet werden soll. Nur wenn man auf den speziellen Link in der Navi klickt soll es aufgehen.
 
Deshalb schrieb ich, müsstest du zusätzlich zum automatischen ausführen der Funktion über das „onload“ event im body-Tag, den HTTP-Referer überprüfen, ob der Besucher über die Navi reinkommt oder nicht.
 
Hi,

alternativ könntest du auch jquery nutzen.
Beispielsweise die Leightbox
 
Deshalb schrieb ich, müsstest du zusätzlich zum automatischen ausführen der Funktion über das „onload“ event im body-Tag, den HTTP-Referer überprüfen, ob der Besucher über die Navi reinkommt oder nicht.

Genau das wäre auch meine Vorgehensweise! Ein bedingtes onLoad()
 
Hallo. Vielen Dank an alle. Wir haben es jetzt tatsächlich so gelöst das es ohne Popup funktioniert. Nur noch kurz am Rande: User lieben Popups, sie müssen nur sinnvoll sein. In unserem Fall war es jetzt aber ohne einfach besser.
 
du könntest die seite auch mit hashtag "#popup" aufrufen und in der seite dann mit onload="if(location.hash.search('popup') != -1) { [öffne Popup] }"

Übrigens überprüfen die Browser ob das öffnen nach einem Klick war, wenn nicht werden sie normal geblockt (Popupblocker)
 
Zurück
Oben Unten