Archivlink: javarea.de Forum > JavaScript > Parameterübergabe in iFrame Seite
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Parameterübergabe in iFrame Seite

Pages: [1] 2 ... nächste » ... Letzte »

geschrieben von sobi am 02.03.2006 - 17:39
Hi Ihr lieben. Ich bastel am nächsten Security Tipp. Da will ich das Suchscript hier aus javarea in einem iFrame laufen lassen. Folgendes Problem hab ich dabei:

Die Startseite wird über <form>.. </form> mit verschiedenen Parametern via POST aufgerufen. In die Startseite wird eine weitere Seite per JS in einem iFrame aufegrufen, s.u.
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
<script language="javascript" type="text/javascript">
<!--
if (self != top)
  top.location.href = self.location.href;

function IFrameStart(){
  if (location.search){
    var sea = location.search;
    var url = sea.substring(1, sea.length);

    mainframe.location.href = url;
	}
  else{
    mainframe.location.href = './start.php';
  }
}
//-->
</script>

Obiges JS lädt die weitere Seite immer in den richtigen Frame, falls sie einzeln aufgerufen wird, das ist für den Betrieb der Site unerlässlich.

Was ich will ist, dass die Parameter die über <form>...</form> an die Startseite übergeben werden auch per POST an die Seite übergeben werden, die in den iFrame geladen wird. In der iFRame Seite sollen die Parameter dann mit $POST(yxz) per PHP weiter verarbeitet werden.

Also eigentlich sollte obiges mainframe.location.href= url um die aktuellen $POST(yxz) Parameter mit der die Startseite aufgerufen wird erweitert werden.

Geht so was, oder bin ich auf dem falschen Weg ??

thnx im Voraus
Uli & Manni
http://www.beagleboard.de

geschrieben von sobi am 03.03.2006 - 13:10
bin ich da schief gewickelt ???

geschrieben von Micha am 03.03.2006 - 19:01
Ich glaube Du kannst mit JavaScript nicht auf POST-Variablen zugreifen!
Übergib sie mit GET

Micha

geschrieben von zippy am 03.03.2006 - 20:01
Ganz verstanden hab ichs noch nicht. Welche Seite verarbeitet die Formulardaten? Wies der Kick sagt, stehen die Get-Parameter in this.location.href.

Wenn aber diese Seite zB in PHP ist, kann sie - beim ERSTEN Aufruf als "Einzelseite" - auch die geposteten Werte auslesen, in ein verstecktes Formular eintragen, sich onLoad - bei Bedarf - selber an das Frameset verschicken, das wiederum als PHP ausgelegt sein müsste, um die selbe Seite dann MIT den Parametern aufzurufen.

Das ist jetzt aber reines Brainstorming ohne es durchprobiert zu haben.

Gleich alles per Get geht aber viel weniger umständlich.


Was ma grad einfällt: Hast schon mal nachgesehen, ob man das Frame-Problem nicht per .htaccess lösen kann? Ich hab da mal was gemacht, wo zB ein Aufruf "Seite_34_2_new.htm" per .htaccess an die "index.php?id=34&mode=2&action=new" verwiesen wurde. Damit wurde - so weit ich mich erinnere - auch geposteter Formularinhalt weitergeleitet. Das geht mit mod_rewrite.

1. Rewrite-Rule: Wenn die Einzelseite mit ihrem RICHTIGEN Namen aufgerufen wird, dann Umleitung aufs Frameset.

Im Frameset wird die Einzelseite unter einem falschen Namen aufgerufen.

2. Rewrite-Rule: Wird "falschername.php" aufgerufen, dann Umleitung zur (echten) Einzelseite...

Vielleicht gehn ja dann die ganzen geposteten Inhalte mit. Würd mich auch interessieren.

Aber wie gesagt: alles nur Brainstorming...



geschrieben von sobi am 04.03.2006 - 00:30
die formulardaten entstehen mit selbstaufruf der startseite. weiter verarbeitet werden sie per php in der seite, die in den iframe geladen wird.

die parameter nach get umzuschreiben wäre kein problem. wie bekommt man sie denn dann von der startseite in die seite, die in den iframe geladen wird ?? ich kann das in js nicht

@zippi:: danke fürs brainstorming aber da kann ich so nicht mithalten.

geschrieben von René am 04.03.2006 - 07:45
im iframe mal das testen.

HTML-Quelltext
1: 
alert(top.location.search);

geschrieben von zippy am 04.03.2006 - 09:50
Wenn das Formular mit der Suchanfrage IM Hauptdokument steht, kannst Du das Formular mit target="antwortframe" direkt ins Antwortframe schicken, ohne das Hauptdokument neu aufzurufen.

geschrieben von sobi am 04.03.2006 - 09:54
ich hab mich jetzt zu zippy's letzter lösung durchgerungen, die ich zwar schon kannte, aber ein problem machte. da andere suchseiten das gleiche problem haben (rücksetzen des suchfeldes) werd ich das hinnehmen und noch etwas umschippern.


thnx @ all

Uli

geschrieben von zippy am 04.03.2006 - 10:24
Schick das Formular mit nem Link, Knopf oder sowas ab, und der (falls nicht selbst ein Submitbutton) hat ein onClick="javascript:clearform();".

das javascript könnte dann so aussehen:

function clearform()
{
document.formname.submit();
document.formname.reset();
}

Das mit dem reset hab ich von derletztekick. Es funzt auch bei files und löscht alle Formulardaten. Ansonsten könnte in dieser Zeile stehen:
document.formname.suchanfrage.value="";

"formname" ist dann der Formularname, "suchanfrage" der Name des Eingabefeldes. Das müsstest halt anpassen.

geschrieben von sobi am 04.03.2006 - 11:20
also statt SUBMIT den onClick(clearform); einsetzen ???

geschrieben von zippy am 04.03.2006 - 11:47
Ja.
Kommt drauf an, ob onsubmit auch ein eventhandler für Javascript ist. Müsst ich nachschaun, obs das gibt und wo es stehen muss.
*schäm*

Jedenfalls kann man das Formular per Javascript resetten, im obigen Beispiel wirds halt gleich auch übers Javascript abgeschickt.

Wie gehts denn dem Beagleboard? Hast schon viele Verlinkungen in Teenager- und Kinderforen?

geschrieben von René am 04.03.2006 - 12:03
HTML-Quelltext
1: 
<form ... onsubmit="clearform();">


@zippy

das ist doppeltgemopelt bzw. rot ist nicht erfordelich nur wenn man es im <a href="..."> einfügt muss es drin stehen.

HTML-Quelltext
1: 
onclick="javascript:clearform();"

geschrieben von sobi am 04.03.2006 - 14:46
funzt leider nicht. das formular wird zwar resettet, aber die parameter werden nicht mehr an die php funktion im iframe übergeben.

gibt es keine js funktion, mit der man das formular im eltenframe vom iframe aus resetten kann, wenn die php suchfunktion abgearbeitet ist ??? etwa so:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
<script type="text/javascript" src="./javascript/highlighter.js"></script>
<!--
   parent.document.searchform.reset();
//-->
</script>


hab ich mir so gedacht, funktioniert aber nicht. ich hoffe aber es wird klar was ich meine. searchform ist der name des formulars.

cu
uli

geschrieben von zippy am 04.03.2006 - 15:05
Hab den Verdacht, dass der Befehl zum reset, wenn man ihn per onsubmit auslöst, das Formular ERST resettet und dann leer verschickt.

Probiers mal mit der Methode, statt eines Submit-Buttons ein Bildchen einzufügen, und bei onClick (aufs Bildchen) das Javascript in der ersten Version zu starten. In diesem muss die Zeile mit dem submit VOR der Zeile mit dem reset stehen. Das funzt bei mir anstandslos...

Danke für den Hinweis, @Rene. Hab mein geliebtes "javascript:blabla()" mittlerweile aus etlichen Seiten gestrichen.

geschrieben von weisnix am 04.03.2006 - 15:37
Hallo Uli,

das muss gehen!

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
<script type="text/javascript">
function leeren(){
top.document.formular.reset();
}
</script>


Edit:

Irgendwie finde ich den Link nie.
Ist aber für solche Fälle ein gutes Anschauungsobjekt:
Zugriff auf verschachtelte Fensterobjekte


Gruß


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.