在按钮点击时将iframe分解到同一域中的新网址

时间:2013-10-29 08:54:06

标签: javascript .net events iframe

将iframe分解为单独的网址的正确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);
}

1 个答案:

答案 0 :(得分:1)

正确的语法是

top.location = "url"

top.location.replace("url") 

根据您希望在层次结构中的排名,更改父级的顶部。

我假设您正在使用IE并在控制台中看到“拒绝访问”(F12),因为跨域安全阻止了“访问”来自其他域的页面。如果iFrame中的页面与父页面的原点不同,则会发生这种情况

尝试

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

更好的解决方案是首先将表单定位到_top。浏览器可能会允许,因为用户实际上点击某些内容以在某处加载新网址