Inputfelder durch Popup befüllen

Headymaster

Erfahrenes Mitglied
Hallo,

ich habe da ein Problem.
Und zwar möchte ich durch Klick auf einen Link in einer Seite ein Popup öffnen. FUnktioniert auch wunderbar. In diesem Popup läuft eine Suchfunktion, mit der ich Daten Suchen kann.
Wenn ich nun fertig gesucht habe, dann kann ich mein gewünschtes Ergebnis anklicken und per Javascript wird dies Ergebnis in den das Dokument geschrieben, mit dem ich das Popup geöffnet habe. Das funktioniert auch, aber nur, wenn beides auf dem gleichen Server abläuft.

Ich habe nun folgendes Szenario:

Es gibt 2 Server

A: Server1
B: Server2

1) A öffnet ein Popup, welches Inhalt von B holt (Funktioniert)
2) Durch Klick auf einen Link bei B wird zu einem Script bei A weitergeleitet (Funktioniert)
3) Bei A wird nun in diesem Script per Javascript versucht, etwas zu befüllen
4) FEHLER: "Erlaubnis zum Lesen der EIgenschaft Window.document wurde verweigert"

Hier mal das Script, welches ich von B ansteuere und welches auf A liegt und ein Dokument auf A befüllen soll:

PHP:
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
echo '<html lang="de">';
	echo '<head>';
		echo '<title>WZ 2008 Modul</title>';
		echo '<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>';
		echo '<script type="text/javascript">';
			echo 'window.onload = function() {';
				echo 'var contentInput = opener.document.getElementById("'.$_GET['contentKey'].'");';
				echo 'var contentInputValue = "'.$_GET['contentValue'].'";';
				echo 'contentInput.value = contentInputValue;';
				echo 'var wzInput = opener.document.getElementById("'.$_GET['wzKey'].'");';
				echo 'var wzInputValue = "'.$_GET['wzValue'].'";';
				echo 'wzInput.value = wzInputValue;';
				echo 'self.close();';
			echo '}';
		echo '</script>';
	echo '</head>';
echo '</html>';

Würde mich sehr über Hilfe freuen.

MFG Nilson
 
Aber das Javascript liegt ja wieder auf dem gleichen Server (gleiche Domain und glicher Ordner) wie das Script "opener"

GEht das selbst dann nicht?

MFG Nilson
 
Naja also nur das Popup wird auf einem anderen Server geöffnet....aber per redirect wird ja auf das Script geleitet...von wo das Popup geöffnet wurde....deswegen ist ja nur das Popup ne andere Domain....der AUfruf und die JS-Befüllung sind beide von der gleichen Domain....

MFG Nilson
 
....deswegen ist ja nur das Popup ne andere Domain....

Das reicht auch aus, um die Erlaubnis verweigert zu bekommen.:(

Was ginge:
Du suchst im Popup.
Wenn du fertig bist, leitest du im Popup weiter zu einem Dokument auf derselben Domain wie die vom opener.
Dieses Dokument lässt du die Suchergebnisse verarbeiten(die du Ihnen bspw. als Parameter übergibst).

Beide Dokumente halten sich jetzt wieder unter derselben Domain auf, und können sich gegenseitig manipulieren.
 
Genauso läuft es ja momentan...

Das Script das ich gepostet habe bekommt per GET die Daten des Popups....und führt dann ein Javascript aus welches das Dokument, was damals das Popup geöffnet hab befüllt....

Hab mal zum Verständnis eine kleine Skizze angehängt ;-)

MFG Nilson
 

Anhänge

  • JavascriptFill.jpg
    JavascriptFill.jpg
    16,9 KB · Aufrufe: 22
Das war jetzt ein wenig verwirrend für mich so früh am morgen.:)

Könnten wir uns auf 2 einheitliche Begriffe einigen, welche wir im weiteren Verlauf nutzen:

Domain(ist die Adresse des Dokumentes, welches im Fenster zu sehen ist, Pfade sind dabei unwichtig)
Dokument(die Seite, welche im Fenster zu sehen ist)

...damit es nicht zu Missverständnissen kommt.


Also, zu dem Zeitpunkt, wo JS diese Fehlermeldung verursacht, unter welchen Domains befinden sich zu diesem Zeitpunkt die beiden Dokumente?


<edit> Die Skizze sagt schon mehr, könntest du diese bitte mal nach Fenstern und nicht nach Servern aufgliedern :)</edit>
 
Die beiden Dokumente befinden sich unter der Domain xxx

xxx steht für eine IP , also die Domain, da ich auf 2 Server bei uns auffer Arbeit teste und nicht auf online servern, was wiederum keinen unterscheid macht.

Also beide Dokumente haben die gleiche Domain, nur das Dokument, welches das Popup repräsentiert hat eineandere Domain.

MFG Nilson
 
Ich habe das jetzt mal nachgestellt, und es funktioniert einwandfrei...ich bekomme nicht die von dir erwähnte Fehlermeldung.

Ablauf ist so, wie er nach deiner Beschreibung auch bei dir ist.

  • FensterA mit Dokument von DomainA öffnet FensterB mit Dokument von DomainB
  • In Fenster B kann man was Suchen(naja...das Suchen hab ich mir erspart, nehme stattdessen die Uhrzeit)
  • Man klickt den Link an und landet in FensterB auf einem Dokument von ServerA(dem wird die Uhrzeit als Parameter übergeben)
  • das Dokument von ServerA in FensterB ändert den Inhalt des Textfeldes innerhalb des Dokumentes von ServerA in FensterA

...geht alles reibungslos, kann es sein, dass der Ablauf bei dir doch etwas anders ist?

Mein Testobjekt: http://server-a.doktormolle.de/temp/326402/a1.php
 

Neue Beiträge

Zurück