2010-10-19 244 views
71

我使用target="_blank"打開新標籤中的鏈接......但在IE中它打開了一個完全合乎邏輯的新窗口,因爲那是_blank應該這樣做,我不知道如何target="_blank"行爲在其他瀏覽器...有什麼強制鏈接打開一個新的標籤..如果瀏覽器支持選項卡...否則新建一個窗口HTML:如何強制鏈接在新標籤中打開,而不是新窗口

+6

'target =「_ blank」'將在Firefox,Chrome和Opera的新選項卡中打開鏈接。其他兩個瀏覽器,IE和Safari將在新窗口中打開它。 – 2010-10-19 17:04:08

+1

哇,你甚至不能使用命名的目標,並讓IE在你的命名標籤中打開新的鏈接。也就是說,如果您選擇使用'target =「myName」'在新選項卡中打開鏈接,則具有相同目標的後續鏈接將不會在您的選項卡中打開,而是會打開一個新窗口。聽起來像是一個可用性錯誤給我。感謝IE。 – Matthew 2012-05-27 16:23:23

回答

74

作爲瀏覽器呈現的HTML的作者,沒有辦法做到這一點。至少我還沒有知道。它很大程度上取決於用戶自己設置的瀏覽器及其設置/首選項。

此外,你不應該強加給任何用戶。瀏覽器是用戶的財產。如果用戶想要打開選項卡或新窗口中的所有鏈接,請讓用戶完成該操作。

很好,我們不能做某些事情。 target=_blank仍然被濫用,彈出窗口已被處決。

+18

+1!默認情況下,大多數瀏覽器在新標籤中打開'target =「_blank」',但在過去,它會打開一個新窗口。在那裏,我認爲,無法強制鏈接在新標籤中打開。 – jolt 2010-10-19 17:05:31

+6

應該存在一個選項來定義應該在新選項卡/窗口中打開哪些鏈接。這對外部鏈接很方便。我相信每個人都同意,在新選項卡中打開鏈接是大多數用戶需要的方法。由於某些原因,IE和Safari在新窗口中打開_blank,但這可能是遺留行爲,與用戶的偏好無關。我相信大多數用戶甚至不知道如何在瀏覽器中設置這種行爲。 – 2010-10-19 17:18:27

+4

簡單的解決方案不是試圖強制您的鏈接在新標籤*或*新窗口中打開。如果我想要一個新標籤,我會中鍵單擊,謝謝。 – bobince 2010-10-19 18:04:21

8

否,沒有。

+4

直言不諱,點,確切答案=)我真的想編輯這個答案只是「不」 – earcam 2014-07-17 22:38:44

1

瀏覽器處理新窗口與新選項卡的方式在瀏覽器的選項中設置,並且只能由用戶更改。

+1

的'specs'參數中,用戶首選項是一回事,但到目前爲止我所學到的是,你需要讓PHP爲不同的瀏覽器設置不同的方法。 – Moon 2012-03-19 19:07:53

+1

真的嗎?你怎麼用PHP做到這一點? – 2012-05-27 11:54:54

0

你可以改變的方式Safari瀏覽器打開一個新頁面在Safari>首選項>標籤>>「自動」

0

您可以設置IE來打開新標籤頁的鏈接,「在標籤中,而不是窗戶打開網頁」只進入設置菜單。

40

因爲我掉進這個老問題,然後發現它現在是可能的(也許這個CSS選項不可用的話),我只想補充它是如何做到的更新:

<a href="[yourlink]" target="_blank" style="target-new: tab;">Google</a> 

這裏有目標,新樣式的選項:

target-new: window | tab | none 

沒有測試none選項,也許它使用默認瀏覽器設置。

我確認這是Firefox和IE7-9。

+1

我有Safari 5.1.7。 (認爲​​它是Windows的最新版本),而這對我來說不起作用。也許這是爲Safari 6+?任何人都可以確認嗎? – 2013-09-20 14:56:03

+3

那麼,它沒有很好的記錄,我檢查了caniuse.com,但沒有信息,定義在這裏:http://www.w3.org/TR/css3-hyperlinks/#the-target-new。 w3schools聲稱它不受任何瀏覽器支持(http://www.w3schools.com/cssref/css3_pr_target-new.asp),但它至少在Firefox和IE上運行,所以很難找到信息。 。 – Martin 2013-09-23 08:22:11

+1

http://www.w3schools.com/cssref/css3_pr_target-new.asp – 2013-10-25 20:14:37

1

我沒有嘗試,但我認爲它在所有的瀏覽器:

target="_parent"

+1

新選項卡高度依賴於用戶設置和瀏覽器代理。 「在新標籤中打開鏈接」不應該在設計的任何地方作出要求,在過去的一年中瞭解到。 – Moon 2013-08-05 04:14:12

0

在Internet Explorer中,單擊工具 - > Internet選項。點擊常規標籤 - >標籤 - >設置。選擇「遇到彈出窗口時」 - >始終打開彈出新選項卡選項。點擊確定。

-1

嘗試用這樣的

的Html JavaScript函數:

<a href="javascript:void(0)" onclick="open_win()">Target</a> 

的Javascript:

<script> 
function open_win() 
{ 
window.open("https://www.google.co.in/"); 
} 
</script> 
+0

謝謝你真的幫助 - 將href設置爲'javascript:'! – 2015-11-07 00:02:31

5

我希望這將有助於你

窗口。開(URL, '_ NEWTAB');

+1

window.open返回一個可重用的windowObjectReference(或者,第二個arg窗口名稱可以在後續調用中重用,以在同一個選項卡/窗口中加載不同的url)。然而,這並沒有回答這個問題 - window.open沒有提供強制選項卡或窗口的方法。 – earcam 2014-07-17 22:44:20

1
onclick="window.open(this.href,'_blank');return false;" 
1
a { 
    target-name: new; 
    target-new: tab; 
} 

的目標,新的屬性指定新的地址鏈接是否應在新窗口或在現有窗口中打開一個新標籤。

注意:target-new屬性僅在target-name屬性創建新選項卡或新窗口時起作用。

+1

它適用於最新的Firefox。 – 2015-01-21 11:15:02

0

這是可能的!

這似乎覆蓋瀏覽器設置。希望對你有效。

<script type="text/javascript"> 
// Popup window code 
function newPopup(url) { 
    popupWindow = window.open(url,'popUpWindow1','height=600,width=600,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes') 
} 
</script> 

<body> 
    <a href="JavaScript:newPopup('http://stimsonstopmotion.wordpress.com');">Try me</a> 
</body> 
0

只需用「TARGET = _blank」將尊重是否使用選項卡或新窗口中用戶/瀏覽器偏好,在大多數情況下是「做正確的事」。

如果指定了新窗口的大小,一些瀏覽器將使用它作爲一個指標,需要一定的規模在這種情況下,總會使用新的窗口。 Stack overflow code example堆棧溢出

相關問題