将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);
}
答案 0 :(得分:1)
正确的语法是
top.location = "url"
或
top.location.replace("url")
根据您希望在层次结构中的排名,更改父级的顶部。
我假设您正在使用IE并在控制台中看到“拒绝访问”(F12),因为跨域安全阻止了“访问”来自其他域的页面。如果iFrame中的页面与父页面的原点不同,则会发生这种情况
尝试
window.open("url","_top")
更好的解决方案是首先将表单定位到_top。浏览器可能会允许,因为用户实际上点击某些内容以在某处加载新网址