2017-08-20 1 views
0

Ich habe eine Anwendung, wo ich auf eine Website umleiten muss (Beispiel unten). Mein Problem ist, dass die Cake-PHP3-Anwendung in einen Wordpress-iFrame eingebettet ist und aus irgendeinem Grund der folgende Befehl innerhalb eines Iframes ausgeführt wird, so dass ich eine Webseite innerhalb einer Webseite habe. Wie kann ich auf eine Webseite außerhalb eines Iframes umleiten?kann nicht umleiten ein iframe mit cakephp3

//controller 
if .... 
    return $this->redirect('http://www.xxxxxx/thank-you-application/'); 
+0

Warum würden Sie ein anderes Verhalten erwarten, wenn die Website in einem Rahmen eingebettet ist? ** https: //stackoverflow.com/questions/580669/redirect-parent-window-from-an-iframe-action** – ndm

Antwort

0
  • Was in Vegas geht, bleibt in Vegas
  • Was in einem Iframe weitergeht, bleibt in diesem iframe

Ich glaube nicht, was Sie möglich ist, mit PHP wollen (und alle PHP-Framework), Vielleicht mit dem Inhalt der Seite erhalten, die Sie innerhalb des iframe laden möchten mit:

$http = new Client(); 
$response = $http->get('http://example.com'); 
$content = $response->body(); 

und legen Sie den $ Inhalt in der Ansicht in der "Top-Level-Seite/Mean nicht innerhalb iframe" (wie sie es auf der Finanz-Website tun), aber ich bin mir nicht sicher über den genauen Weg.

Die einfachste Lösung besteht darin, Ihrem Controller einen Wert ($ redirect = true) in die Ansicht zu senden, der sagt: "Hey! View, plz öffne diesen Link zum obersten Fenster!/Mean außerhalb des iframes".

Schreib etwas wie dies in der Ansicht (oder Vorlage):

<!-- ... --> 
<?php if($redirect) : ?> 
<body onload="javascript:window.top.location.href='<?= $this->Url->build([ 
    "controller" => "Pages", 
    "action" => "display", 
    "thank-you" 
    ]) ?>'";> 
<?php else: ?> 
<body> 
<?php endif; ?> 
<!-- ... --> 

Hoffe, es hilft