window.open target _self v window.location.href?

时间:2011-01-27 07:49:13

标签: javascript

我需要使用JavaScript重定向用户。哪种方法首选?

window.open("webpage.htm", "_self");

window.location.href = "webpage.htm";

5 个答案:

答案 0 :(得分:65)

肯定第二种方法是首选的,因为你没有其他函数调用的开销:

window.location.href = "webpage.htm";

答案 1 :(得分:24)

希望通过阅读本文保存其他人。

我们遇到了基于webkit的浏览器的问题:

window.open("webpage.htm", "_self");

如果我们有太多的DOM节点,浏览器会锁定并死掉。当我们将代码切换到以下接受的答案时:

location.href = "webpage.html";
一切都很好。我们花了一段时间才弄清楚导致问题的原因,因为我们的页面定期无法加载的原因并不明显。

答案 2 :(得分:20)

正如其他人所说,第二种方法通常是首选。

然而,两个代码片段并不完全相同:第一个实际上将window.opener设置为窗口对象本身,而第二个将保留原样,至少在Firefox下。

答案 3 :(得分:3)

window.location.href = "webpage.htm";

答案 4 :(得分:3)

您可以省略window,只使用location.href。例如:

location.href = 'http://google.im/';