0

iframe から別の URL に分割するための正しい JavaScript 構文は何ですか? つまり、iframe 内にフォームを含むページがあり、そのフォームを送信した後、サイト (同じドメイン) の別のページにリダイレクトしたいのですが、iframe 内ではなく親ウィンドウで開きます。これは私が試したことです:

protected void ReplacePageClick(object sender, EventArgs e)
{
    string url = "Contact.aspx";

    ClientScriptManager cs = Page.ClientScript;

    cs.RegisterClientScriptBlock(this.GetType(), "RedirectScript", "top.document.location.href = " + url, true);
    //top.document.parent.location.href?
    //top.document.location.replace?
    //window.parent.location?
    //window.top.location.href?
    //window.top.location.replace?
    //parent.window.location.href?
    //top.location.href?

    // the below works, so we know it's able to register javascript
    //cs.RegisterClientScriptBlock(this.GetType(), "Alert", "alert('hello')", true);
}
4

1 に答える 1

1

正しい構文は次のとおりです。

top.location = "url"

また

top.location.replace("url") 

階層内でどのくらい上に行きたいかに応じて、親のトップを変更します。

IE を使用していて、クロス ドメイン セキュリティが別のドメインからのページへの「アクセス」をブロックしているため、コンソール (F12) に「アクセスが拒否されました」と表示されると想定しています。これは、iFrame 内のページのオリジンが親ページと同じでない場合に発生します。

試す

window.open("url","_top")

より良い解決策は、最初にフォームのターゲットを _top にすることです。ユーザーが実際に何かをクリックしてどこかに新しいURLをロードするため、ブラウザが許可する可能性が高いこと

于 2013-10-29T09:08:21.727 に答える