私はIFrameを使用していますが、このIFrameから別のページにリダイレクトしたいです。
JavaScriptなしでこれを行う方法、つまりwindow.location
。
Response.Redirect
はIFrameのページを表示しますが、メインページとしてページを表示したいです。
クライアント側のスクリプトまたはユーザーが呼び出したアクションを使用して、他のフレーム/ウィンドウを操作できないと危険です。
選択肢のリストは次のとおりです。
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>
このコードを使用しました。
ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = '../CentinelError.aspx'; </script>");
そしてそれは動作します。
私はJSなしではそれをする方法はないと思います。ブラウザは、iframe内のサーバーからのすべてのリダイレクトを処理します。 JavaScriptを使用してウィンドウ全体をリロードするには、「伝える」必要があります。
Iframe <>を使用すると、サーバー側とクライアント側の両方からリダイレクトできます
クライアント側の応答:
window.parent.location.href="http://yoursite.com"
サーバー側の応答:
Response.Write("<script type=text/javascript> window.parent.location.href ='http://yoursite.com' </script>")
まあ、これは本当にハックですが、Parent-Frameをデフォルトのターゲットとして定義できます:
<base target="_parent">
これはiframe内のすべてのリンクに適用されるため、満足のいくソリューションではないかもしれません;-)
私の知る限り、javascriptである必要があります。
self.parent.location='http://'
リモートページのヘッドブロックにアクセスできる場合、javascriptなしでこれを行うことができます。
<base target="_parent" />
リモートページヘッドにアクセスできる場合は、非常にシンプルで簡単な1行のソリューションです。 JavaScriptがありません。
他のすべてが指摘しているように、JavaScriptを使用せずにそれを行うことはできません。ただし、サーバー側では、iframe内でページが読み込まれるとすぐにページがターゲットの場所にリダイレクトされるように、必要なJavaScriptを発行できます。
Response.Write( "<script>window.open('" + url + "','_parent');</script>" );
以下のリンクで回答 http://forums.asp.net/t/1349064.aspx?Redirect+parent+page+from+within+Iframe