GELight: Ajax Request Übergabe in Frame...

Nabend alle zusammen,

Ich führe per Ajax eine PHP aus, die eine komplette Seite erzeugt.
Also von <doctype.....> bis ... </html>

Dies bekomme ich ja als request Text per Ajax zurück.
Zusätzlich habe ich ein FRAME mit Namen "EDITOR".
Ist es möglich per Ajax den RequestText in den Frame zu bekommen?
Im Frame selbst ist keinerlei Code.

Wäre zu geil, wenn das gehen würde. :)

Gruß Mario

  1. Hallo,

    Ich führe per Ajax eine PHP aus, die eine komplette Seite erzeugt.
    Also von <doctype.....> bis ... </html>

    Wieso lädst du nicht die URI des PHP-Scriptes im Frame, warum der Umweg über XMLHttpRequest?

    Dies bekomme ich ja als request Text per Ajax zurück.
    Zusätzlich habe ich ein FRAME mit Namen "EDITOR".

    Z.B. so:

    var doc = parent.frames.EDITOR.document; // Oder wie auch immer du in dem Script auf den Frame und sein document-Objekt zugreifst.  
    doc.[ref:self812;javascript/objekte/document.htm#open@title=open]();  
    doc.write(responseTextDesXMLHttpRequests);  
    doc.close();  
    
    

    Mathias

    1. Hi Mathias,

      Ich habe es bisher so, dass ich den Iframe per
      opener.parent.frames["EDITOR"].location.reload();
      den Iframe einfach reloade und in diesem das Script für den Seitenaufbau einfach ausgeführt wird. Leider sieht man in dem Fall wie die Seite aufgebaut wird, wenn es mal etwas hängt.

      Wenn ich nun das ganze per Ajax im Hintergrund laden lasse, dann ist dieser Vorgang ja schon abgeschlossen und ich brauch nur noch den fertigen Code dem Iframe zu übergeben. Das ist natürlich nicht immer der Fall aber in den meisten Fällen ist der Seitenaufbau dadurch sehr viel schneller und angenehmer.

      Habs eben mal mit :
      opener.parent.frames["EDITOR"].document.write ( transport.responseText );
      getestet und ich muss sagen es funktioniert wunderbar. Allerdings hängt er den neuen code immer einfach hinten dran.. :).. is ja auch klar.
      Wie könnte ich denn .... document. leeren lassen?

      Wie gesagt.. das sind derzeit alles nur tests... nix final... ich probiere einfach alles mögliche durch und schaue, was mir am besten entgegen kommt als User.

      Gruß Mario

      1. Hallo,

        Habs eben mal mit :
        opener.parent.frames["EDITOR"].document.write ( transport.responseText );
        getestet und ich muss sagen es funktioniert wunderbar. Allerdings hängt er den neuen code immer einfach hinten dran.. :).. is ja auch klar.
        Wie könnte ich denn .... document. leeren lassen?

        Na zuerst einmal solltest du mein Posting lesen.

        Mathias

        1. Hi Mathias,

          Sorry... es wollte erst nicht so, wie ich wollte hehe
          Aber es funktioniert natürlich so wunderbar, wie du es geschrieben hast... einfach klasse. Ich hab nur ein kleines Problem, wenn ich das so verwenden möchte. Also in meinem ElternFenster liegt mein iframe "EDITOR".
          Beim ersten Mal lädt er bislang das Dokument direkt per PHP im Iframe.
          Per Javascript kann ich auf die Elemente darin klicken und es öffnet sich ein Popup mit den Elementeigenschaften. Wenn ich die nun ändere und speichere, dann rufe ich das neue Script ab:

            
          var editorReload = new Ajax.Request( "../../PREVIEW/EDITOR.php",  
          {  
          method: "GET",  
          parameters: {  
            PROJECT_ID : 1,  
            DOCUMENT_ID : 1,  
                    },  
                    onSuccess: function(transport) {  
          var iframe = opener.parent.frames["EDITOR"].document;  
          iframe.open();  
          iframe.write ( transport.responseText );  
          iframe.close();  
          },  
          }  
          );  
          
          

          Ich hoffe mal der COde ist hier relativ gut lesbar.
          Auf jeden Fall füllt er den iFrame ansich genau so, wie ich wollte.
          Allerdings stimmt danach mein Pfad zur Propertie.php des zu öffnenden Popups nicht mehr. Ich weiß gerade nur nicht, wo ich mich befinde, wenn ich den iframe per var iframe = opener.parent.frames["EDITOR"].document; definiere.

          Hoffe du weißt, was ich meine...

          Gruß Mario