Подтвердить что ты не робот

PHP "header (location)" внутри IFRAME, чтобы загрузить в _top месте?

У меня простая форма внутри IFRAME. Когда пользователь нажимает на SUBMIT, он перенаправляется на определенную страницу на моем сервере. Функция, которую я использую для перенаправления,

 header ('Location: mypage2.html');
exit ();

Но я хочу, чтобы новая страница открывалась в _top месте, а не внутри того же IFRAME, который я использую. Как я могу сказать браузеру открыть новую страницу в _top не внутри IFRAME? Спасибо заранее.

4b9b3361

Ответ 1

Вы не можете добиться желаемого эффекта в PHP. Это то, что вам нужно сделать с JavaScript или добавить атрибут target в <form>:

<form ... target="_top">

Ответ 2

Вы можете использовать javascript для доступа к родительскому элементу. Вы могли бы эхом отменить javascript на вашем PHP.. поэтому ваша родительская страница имеет следующее:

function changeURL( url ) {
    document.location = url;
}

и в вашем php script, вы эхо

<script>
   parent.changeURL('mypage2.html' );
</script>

Причина, по которой вы не можете вызвать parent.document.location, заключается в том, что она только для чтения. Для этого вам нужно иметь функцию, доступную для родителя.

Ответ 3

Простой способ непосредственно в PHP перенаправить родительскую страницу, а не iframe:

echo "<script>top.window.location = '/mynewpage.php'</script>";
die;

die; необязательно необходимо, но хорошо "на всякий случай", чтобы предотвратить продолжение script, например, если javascript отключен в пользовательском браузере.

Ответ 4

мы можем использовать javascript следующим образом:

target.window.location='locationpage.html';
top.window.location='mypage2.html';

Ответ 5

Лучше всего и проще всего использовать целевой элемент формы

<form action="..." target="_top"> 
<form action="..." target="_parent">

любой из целевых параметров работает нормально

Ответ 6

Вы можете либо ссылаться на страницу с помощью <a href="pagename.php?Break=Y">Break Out</a>, либо использовать код

<?php header("Location: pagename.php?Break=Y"); ?>

Затем вы используете следующий код в заголовке страницы с помощью

if(isset($_GET['Break'])) // 
    {
    $BreakFrame = true;
    $BreakToPage = "pagename.php";

    }

<script language="JavaScript" type="text/javascript">
function changeURL( url ) {
    document.location = url;
}
</script>

<?php if($BreakFrame) { ?>

<script language="JavaScript" type="text/javascript">
parent.changeURL('<?=$BreakToPage?>' );
</script>

<? }?>

Ответ 7

На странице, которую вы хотите загрузить в _top, добавьте следующий код в заголовок

<script type="text/javascript">
if (top != self) top.location.href = location.href;
</script>