我有一個簡單的窗體,它是在IFRAME中。當用戶點擊SUBMIT時,它會重定向到我服務器上的特定頁面。我使用重定向功能是IFRAME中的PHP「頭(位置)」,加載到_top位置?
header ('Location: mypage2.html');
exit();
但我希望新的頁面中_top位置打開,而不是我用的是同一個IFRAME內。我怎樣才能讓瀏覽器在_top中打開新頁面而不是在IFRAME中? 在此先感謝。
我有一個簡單的窗體,它是在IFRAME中。當用戶點擊SUBMIT時,它會重定向到我服務器上的特定頁面。我使用重定向功能是IFRAME中的PHP「頭(位置)」,加載到_top位置?
header ('Location: mypage2.html');
exit();
但我希望新的頁面中_top位置打開,而不是我用的是同一個IFRAME內。我怎樣才能讓瀏覽器在_top中打開新頁面而不是在IFRAME中? 在此先感謝。
您無法在PHP中達到預期效果。這是你不得不從JavaScript做或添加target
屬性<form>
:
<form ... target="_top">
您可以使用JavaScript來訪問父。你可以在你的PHP回聲出的JavaScript ..所以你的父頁面有這樣的:
function changeURL(url) {
document.location = url;
}
,在你的PHP腳本,你回聲
<script>
parent.changeURL('mypage2.html');
</script>
你不能叫parent.document的原因。位置是因爲它是隻讀的 - 您必須在父級上有可用的功能才能執行此操作。
這是更好的解決方案。 – 2012-12-19 22:56:47
我們可以使用JavaScript這樣的:
target.window.location='locationpage.html';
top.window.location='mypage2.html';
最好的和最簡單的事情做的就是用表格目標元素
<form action="..." target="_top">
<form action="..." target="_parent">
任一目標參數的正常工作
您可以使用<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>
<? }?>
一個簡單的方法,直接在PHP父頁面重定向,而不是在iframe:
echo "<script>top.window.location = '/mynewpage.php'</script>";
die;
的die;
ISN並不一定必要,但爲了防止腳本繼續進行,例如,如果在用戶的瀏覽器中禁用了javascript,則「很好」以防萬一。
如果您無法訪問FORM元素並且無法訪問PARENT頁面的代碼,您該怎麼辦? – Doug 2015-04-14 00:49:27