Php 无论是否在iframe中,重定向都应该有效。

Php 无论是否在iframe中,重定向都应该有效。,php,javascript,html,Php,Javascript,Html,我有一个login.php页面,通常在lightbox样式的iframe中查看。用户输入名称和电子邮件,表单将在iframe中提交给自身(login.php),如果登录成功,我将使用以下命令将其重定向到所需页面: echo " <script> parent.changeURL('{$returnlink}' ); </script> "; exit; echo” changeURL('{$returnlink

我有一个login.php页面,通常在lightbox样式的iframe中查看。用户输入名称和电子邮件,表单将在iframe中提交给自身(login.php),如果登录成功,我将使用以下命令将其重定向到所需页面:

echo "
    <script>
        parent.changeURL('{$returnlink}' );
    </script>
";              
exit;
echo”
changeURL('{$returnlink}');
";              
出口
在父页面的
部分中,是使此重定向工作的函数:

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

函数更改url(url){
document.location=url;
}
但是,如果login.php页面是在父窗口中加载的,而不是在lightbox样式的iframe中加载的(不是预期的,但可能会发生),那么这个重定向函数就会中断,因为在这种情况下没有父窗口,实际上它应该更改自己的URL,而不是父窗口的URL

是否有更持久的php或javascript重定向代码?或者,如果它不在iframe中,将其更改为自校正的方法?

试试看

if(parent)parent.window.location=url;
else window.location=url;

如果(家长)
changeUrl('{$returnlink}');

根据@Tapas-Pal、@Sumit-Bijvanai和@yourdeveloperfriend的建议,我现在正在使用的解决方案是:

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

如果(家长){
parent.window.location='{$returnlink}';
}
否则{
location='{$returnlink}';
}       

如果设置了
parent
,您可以简单地检查一下?您的意思是什么?你是在问你是否还需要其他服务吗?
<script>
    if(parent) {
        parent.window.location='{$returnlink}';
    }
    else {
        window.location='{$returnlink}';
    }       
</script>