2013-03-05 1 views
0

У меня есть страница login.php, которая обычно просматривается в iframe в стиле лайтбокса. Пользователь вводит имя и адрес электронной почты, форма представляется сама по себе (login.php) в пределах фрейма, а если удастся, то Войти перенаправить их на нужную страницу с помощью:Перенаправление должно работать в iframe или нет.

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

В родительской страницы <head> раздела является функция, которая делает эту переадресацию работу:

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

Однако, если страница login.php загружается в самом родительском окне, не в лайтбокс стиле IFrame она предназначена для загрузки (не ожидали, но возможен для этого произойдет), то эта функция перенаправления ломается, потому что в этом случае нет родительского , и на самом деле он должен менять свой собственный URL, а не родительский.

Есть ли более прочный код перенаправления PHP или JavaScript? Или способ изменить его на саморегуляцию, если он не в iframe?

+0

Вы могли бы поставить простую проверку, если ' parent' установлен? –

ответ

0

Используя предложения от @Tapas Pal, @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; 
Смежные вопросы