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 回答