Alternative zum IFrame trotz spezieller Anforderung
Tommy
- html
Hi,
Bevor ich meine Frage stelle, ein kleiner Abriss der "speziellen" Anforderung.
Ich bin derzeit dabei ein Altsystem etwas aufzuhübschen. Dieses Altsystem besteht aus vielen einzelnen PHP-Seiten, welche viele viele Funktionen anbieten. Nun muss dieses System in ein CMS (OpenCMS) eingebettet werden. Da es leider das Bugdet nicht hergibt die Funktionen nachzubauen, wollte ich die relevanten Seiten in einem IFrame im Contentbereich der neuen CMS-Seiten einbetten. (Für den IFrame habe ich mich schon selbst geohrfeigt)
Nun das Problem: Der Inhalt der IFrames wird u.U. in der Höhe nicht vollständig angezeigt. Dafür gibt es ja reichlich viel JavaScript-Code im Netz um das entsprechend anzupassen. Allerdings geht das in meinem Fall nicht, da die Same-Origin-Policy verletzt wird. Die Altanwendung liegt in einer anderen Domaine als das CMS.
Deshalb müsste ich vom CMS die Seiten einlesen lassen und an das Template als normalen html-code durchreichen. Geht auch, allerdings müsste ich für jedes Formular und jeden Link (die sind relativ :( ) Anpassungen vornehmen.
Und nun die Frage: Gibt es noch eine andere Möglichkeit die Iframes zu manipulieren oder hat irgend jemand eine bessere Idee um meinen Tag zu retten :).
Vielen Dank
Der Tommy
Hallo,
Und nun die Frage: Gibt es noch eine andere Möglichkeit die Iframes zu manipulieren oder hat irgend jemand eine bessere Idee um meinen Tag zu retten :).
Die Seite als String lesen, sinngemäß file_get_contents(url), und dann den HTML-Kopf abschneiden, zB. mit explode(string,"<body"); (;-). Dann das ganze noch in ein <div class="oldcontent"> packen.
Gruß
jobo
Hi
Die Seite als String lesen, sinngemäß file_get_contents(url), und dann den HTML-Kopf abschneiden, zB. mit explode(string,"<body"); (;-). Dann das ganze noch in ein <div class="oldcontent"> packen
Das wäre ja kein Problem, wenn es sich nur um anzuzeigenden text handeln würde. Aber da sind auch Formulare & Links drin. Klickt man nun auf den Submit oder Link, landet man wieder im alten System. Ich hatte mir gestern noch überlegt, dass man evtl. mit redirects wieder ins cms zurückspringt. Mal schauen ob das was wird.
Hallo,
Hi
Die Seite als String lesen, sinngemäß file_get_contents(url), und dann den HTML-Kopf abschneiden, zB. mit explode(string,"<body"); (;-). Dann das ganze noch in ein <div class="oldcontent"> packen
Das wäre ja kein Problem, wenn es sich nur um anzuzeigenden text handeln würde. Aber da sind auch Formulare & Links drin. Klickt man nun auf den Submit oder Link, landet man wieder im alten System.
Aber nur, wenn du dort den vollen Domainnamen angegeben hast, was ich mal bezweifle. <form action="example.com/bla">??? steht da doch wohl nicht. Das ergänzt der Browser doch. Im IFrame natürlich für die alte Domain. Ich würde vermutlich die Files komplett in die neue Domain rüberkopieren und auf der alten Redirects machen. Und dann entsprechend einbetten wie oben geschrieben. U.u. dann noch mit str_replace die alte.domain gegen die neue.domain austauschen.
Gruß
jobo
Hi,
Nun das Problem: Der Inhalt der IFrames wird u.U. in der Höhe nicht vollständig angezeigt. Dafür gibt es ja reichlich viel JavaScript-Code im Netz um das entsprechend anzupassen. Allerdings geht das in meinem Fall nicht, da die Same-Origin-Policy verletzt wird. Die Altanwendung liegt in einer anderen Domaine als das CMS.
Wirklich eine komplett andere Domain, oder nur eine andere Subdomain?
Wenn letzteres, lässt sich die SOP umgehen, in dem man document.domain passend setzt.
MfG ChrisB