web-dev-qa-db-ja.com

IFrameから親ページをリダイレクトします

私はIFrameを使用していますが、このIFrameから別のページにリダイレクトしたいです。

JavaScriptなしでこれを行う方法、つまりwindow.location

Response.RedirectはIFrameのページを表示しますが、メインページとしてページを表示したいです。

34
Waheed

クライアント側のスクリプトまたはユーザーが呼び出したアクションを使用して、他のフレーム/ウィンドウを操作できないと危険です。

選択肢のリストは次のとおりです。

JavaScriptオプション:

window.top.location.href=theLocation;
window.parent.location.href=theLocation;
window.top.location.replace(theLocation);

非JavaScriptオプション:

<a href="theLocation" target="_top">Click here to continue</a>  
<a href="theLocation" target="_parent">Click here to continue</a>
70
o.k.w

このコードを使用しました。

ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = '../CentinelError.aspx'; </script>");

そしてそれは動作します。

13
Waheed

私はJSなしではそれをする方法はないと思います。ブラウザは、iframe内のサーバーからのすべてのリダイレクトを処理します。 JavaScriptを使用してウィンドウ全体をリロードするには、「伝える」必要があります。

5
Michal Dymel

Iframe <>を使用すると、サーバー側とクライアント側の両方からリダイレクトできます

クライアント側の応答:

window.parent.location.href="http://yoursite.com"

サーバー側の応答:

Response.Write("<script type=text/javascript> window.parent.location.href ='http://yoursite.com' </script>")
5
user2492312

まあ、これは本当にハックですが、Parent-Frameをデフォルトのターゲットとして定義できます:

<base target="_parent">

これはiframe内のすべてのリンクに適用されるため、満足のいくソリューションではないかもしれません;-)

3
Synox

私の知る限り、javascriptである必要があります。

self.parent.location='http://'
0
gingerbreadboy

リモートページのヘッドブロックにアクセスできる場合、javascriptなしでこれを行うことができます。

<base target="_parent" />

リモートページヘッドにアクセスできる場合は、非常にシンプルで簡単な1行のソリューションです。 JavaScriptがありません。

0
user336735

他のすべてが指摘しているように、JavaScriptを使用せずにそれを行うことはできません。ただし、サーバー側では、iframe内でページが読み込まれるとすぐにページがターゲットの場所にリダイレクトされるように、必要なJavaScriptを発行できます。

Response.Write( "<script>window.open('" + url + "','_parent');</script>" );

以下のリンクで回答 http://forums.asp.net/t/1349064.aspx?Redirect+parent+page+from+within+Iframe

0
user3351873