哪一个更好的方法是window.parent.location.href或window.top.location

时间:2012-03-27 12:22:28

标签: javascript jquery

我正在一个项目中工作,我必须在特定场景中重定向错误页面。为此,我创建了Error.aspx页面。现在我正在使用 window.top.location.href =“../ Error.aspx”并生成http://localhost/app_web/Error.aspx 并且它的工作正常,除了一次(显示消息http://xyz/ErrorPage.aspx'不存在。)。所以任何人都可以建议哪个是更好的选择。

由于

3 个答案:

答案 0 :(得分:9)

window.parent指的是当前窗口的父窗口。那个父母可以拥有它自己的父母,它有自己的父母等。

window.top指的是这个最顶层的窗口;例如window.parent.parent.parent[...];

但是,在这种情况下,您可能只想重定向当前窗口,例如

window.location.href = "../Error.aspx";

有关详情,请参阅window.parentwindow.topwindow.location上的文档。

答案 1 :(得分:9)

top“优于”parent,如果您的目的是将您的网页放到最顶层,因为您的网页可能位于框架中,而该框架本身位于框架内。

至于你的相对路径问题,你可能想尝试:

var local = location.pathname.split("/");
local.pop(); // remove the filename
local.pop(); // remove the containing directory
local.push("Error.aspx");
local = location.protocol+"//"+location.hostname+"/"+local.join("/");
top.location.href = local;

答案 2 :(得分:5)

这取决于你想要做什么。

  1. window.parent.location

    用于更改父窗口的位置。

  2. window.top.location

    • 它是对象'window'的属性。
    • 它返回窗口层次结构中最顶层窗口的位置。
    • 如果窗口没有父窗口,则top是对自身的引用(窗口=== window.top)