2012-05-14 80 views
4

標籤爲什麼會通過這些參數對window.open(「SomeWinName」)開放的選項卡中打開:爲什麼這個JavaScript導致頁面在爲Chrome

toolbar=1, 
location=1, 
directories=1, 
addressbar=1, 
scrollbars=1, 
status=1, 
menubar=1, 
resizable=1, 
outerWidth="+x+", 
outerHeight="+ 

但是,如果使用這些參數,可以窗口,在新窗口中打開:

resizable=1, 
outerWidth="+x+", 
outerHeight="+y 
+1

每個瀏覽器處理這種不同,而且也沒有辦法在新標籤或一個新窗口顯式打開的頁面。即使您確切地知道*什麼*會打開一個新選項卡,您的解決方法可能會停止使用下一次瀏覽器更新。 – rid

+0

我想這可能是由設計...它應該是用戶的決定是否新標籤頁或新窗口中打開新的「頁面」。無Chrome瀏覽器的窗口通常是對話框(或彈出窗口),所以通常會在新窗口中打開,但是如果要將所有瀏覽器Chrome瀏覽器重新添加到新窗口中,瀏覽器可能會認爲這是「頁面」並將其顯示爲如在一個新的標籤。 –

+1

我還想補充一點,除非你想強制功能,否則不要在新窗口/選項卡中打開東西。所有現代瀏覽器都可以在新選項卡中打開鏈接。 –

回答

1

這事做的事實,當你只是用window.open(「名稱」),它沒有PARAMS設置地址欄菜單欄和所有。所以它在新窗口打開沒有那些東西。它無法在新選項卡中實現,因爲顯然它需要與當前窗口相同的UI設置。

基本上,從谷歌的「期望」的行爲。將打開一個新的標籤。但如果它沒有足夠的信息來做到這一點,它會做下一件事,並打開一個新窗口。

0

指定widthouterWidth將強制一個與源窗口大小不同的新窗口。如果width是默認的(同當前窗口),瀏覽器將默認爲一個新的標籤(如果用戶有新的標籤,而不是新的窗口,在首籤,我相信大部分現代瀏覽器在默認情況下做的。)

0

在W3C規範沒有outerWidth和outerHeight:W3C Specs

所以,這個工程對我好:

var x = y = 10; 
window.open ('Yeah', "toolbar=1,location=1,directories=1,addressbar=1,scrollbars=1,status=1,menubar=1,resizable=1,width="+x+",height="+y); 
window.open ('Yeah2', "resizable=1,width="+x+",height="+y); 

,它打開兩個不同的標籤兩個新的窗口。

相關問題