2011-01-27 80 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」。