2011-01-27 44 views
43

我需要使用JavaScript重定向用户。哪个是首选的方法?window.open target _self v window.location.href?

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

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

是不是第一个打开一个新窗口?其实我不确定。 – 2011-01-27 07:51:22

+0

@Gunner,Nope,它会在同一个窗口中打开它,因此`_self`在那里... – 2011-01-27 07:51:59

+0

如果用_blank替换_self,它会在新窗口中打开 – DOK 2013-02-15 14:42:33

回答

53

绝对是首选第二种方法,因为你没有另一个函数调用的开销:

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

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

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

3

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

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

希望别人通过阅读这篇保存。

我们遇到了基于WebKit浏览器做的一个问题:

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

浏览器会升起,死,如果我们有太多的DOM节点。当我们将我们的代码转换为以下公认的答案时:

location.href = "webpage.html"; 

一切都很好。我们花了一段时间才弄清楚是什么导致了这个问题,因为我们的页面定期无法加载的原因并不明显。

0

请使用

window.open("url","_self"); 
  • 第一个参数 “URL” 是页的要打开完整路径。
  • 第二个参数“_self”,它用于在同一标签中打开页面。你想在另一个标签中打开页面,请使用“_blank”。