2011-04-16 123 views
5

我想要一個腳本,當用戶點擊我網頁上的一個(target =「_ blank」)鏈接/橫幅時,用戶的Internet Explorer將打開一個新選項卡而不是新窗口。JavaScript:強制IE打開新窗口而不是窗口?

我討厭Internet Explorer默認打開新窗口而不是新標籤時單擊鏈接/橫幅。所有其他流行的瀏覽器(例如Chrome,Opera,Firefox)默認打開標籤頁。

最好這個腳本需要在所有支持標籤的IE版本中工作。

所以...如何使用JavaScript強制IE打開新標籤而不是窗口,這是默認行爲?

+0

不可能...(*這是一件好事,你**不能**覆蓋用戶偏好.. *) – 2011-04-16 11:58:36

+0

當前版本的IE不會在新窗口中打開'_blank'鏈接,但新的標籤。你測試過什麼版本的IE? – 2011-04-16 12:03:40

回答

2

這是不可能的;這是一個瀏覽器設置/行爲,不能從頁面上加載的腳本調用。

Programmatically open new pages on Tabs

+0

當選擇「讓Internet Explorer決定如何打開彈出式」選項時,Internet Explorer將使用什麼標準來做出此決定? – 2016-04-07 07:45:02

+1

@ Dead.Rabit,請看這裏:http://superuser.com/questions/713743/what-rules-apply-when-ie9-decides-how-to-open-popups – 2017-01-05 15:25:43

0

在IE11至少,默認用戶設置是「讓Internet Explorer的決定如何彈出窗口應該打開」(副手,我不知道什麼是默認在以前的版本)。有關這種默認設置的IE行爲的一些上下文可以在這裏找到:https://superuser.com/questions/713743/what-rules-apply-when-ie9-decides-how-to-open-popups

根據其他人的回答/評論在這裏,一般來說,我們作爲網絡程序員很少控制如何打開彈出窗口。但是,如果用戶沒有更改它們的默認選擇(至少在IE11中),則可以通過適當調用window.open()方法來近似您想要的行爲。具體來說,如果傳遞給方法的參數少於三個,IE通常會打開一個新標籤頁,同時傳遞specs(第三個)參數(即使空值或未定義值爲< - 這會使我最初陷入困境!)會導致IE彈出一個單獨的窗口。

如果您很樂意接受一個不能保證的解決方案,但可以運行相當長的時間,這可能會有所幫助。至少在這種情況下,'違約的暴政'對​​我們有利!

Chrome至少對specs參數沒有太挑剔 - 如果爲null或未定義,它將在默認配置下彈出選項卡而不是窗口。

相關問題