2013-03-05 41 views
0

我有一個login.php頁面,通常在Lightbox風格的iframe中查看。用戶輸入姓名和電子郵件,表單的iframe內提交到自身(login.php中),如果登錄成功,然後我利用重定向到所需的頁面:無論是否在iframe中,重定向都應該可以正常工作。

echo " 
    <script> 
     parent.changeURL('{$returnlink}'); 
    </script> 
";    
exit; 

在父頁面的<head>部分是功能,使這個重定向工作:

<script> 
    function changeURL(url) { 
     document.location = url; 
    } 
</script> 

但是,如果的login.php頁面在燈箱式的父窗口本身,加載iframe的它被設計成加載(不預期,但可能爲它發生),那麼這個重定向函數就會中斷,因爲在那種情況下沒有父項,實際上它應該改變它自己的URL,而不是父母的URL。

是否有更持久的php或JavaScript重定向代碼?或者,如果它不在iframe中,可以將其更改爲自校正?

+0

你可以把一個簡單的檢查,如果'父母'設置? – 2013-03-05 06:25:13

回答

0

從@Tapas帕爾,@Sumit Bijvanai和@yourdeveloperfriend使用的建議,我現在工作的解決方案是:

<script> 
    if(parent) { 
     parent.window.location='{$returnlink}'; 
    } 
    else { 
     window.location='{$returnlink}'; 
    }  
</script> 
0

嘗試

if(parent)parent.window.location=url; 
else window.location=url; 
0
<script> 
    if(parent) 
    parent.changeUrl('{$returnlink}'); 
</script> 
+0

太棒了。其他...? – DanielT 2013-03-05 06:30:04

+0

你是什麼意思?你問你是否需要別的嗎? – yourdeveloperfriend 2013-03-05 06:30:41