2011-07-19 70 views
12

當我使用firefox,然後使用window.open('blah.com','blah','left=-30,top=-300');時,彈出窗口在我的第一個顯示器上方的第二個顯示器中打開,但是在Chrome中,彈出窗口僅在left=0,top=0處打開。是否有一個原因鉻是這樣做的,我將如何解決這個問題?在鉻中彈出打開位置

謝謝!

+2

也許鉻不讓你打開窗口以外的窗戶? – HackedByChinese

回答

1

我認爲這是Chrome中的一個錯誤,說實話,但目前我還沒有意識到有修正,因爲我自己是JavaScript的新手。對不起,我確定這不是你要找的答案。

0

最近我已經注意到Chrome會出於安全原因讓你'隱藏'顯示區域之外的窗口。

0

我知道這個職位是舊的,但我有類似的問題:

var w = 300; 
var h = 300; 
var left = (window.screen.width/2)-(w/2); 
var top = (window.screen.height/2)-(h/2); 

var win = window.open("example.html", "_blank", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left); 


--centers無法在Chrome在Firefox彈出窗口,但。此外,請注意,這不是在顯示區域外面...

7
var w = 300; 
var h = 300; 
var left = (window.screen.width/2)-(w/2); 
var top = (window.screen.height/2)-(h/2); 

var win = window.open("example.html", "_blank", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h); 
win.moveTo(left, top); 

...

+2

它不起作用:/ –

13

這是當打開輔助監視器上的彈出窗口中瀏覽器的錯誤。 Chrome瀏覽器的人似乎說這是一個安全問題(儘管這是一個安全問題超出了我)。

現在,在一個不存在的輔助監視器上打開一個彈出窗口,我可以理解是一個安全問題,但是......無論如何。

下面就來討論一個鏈接就此事:

https://code.google.com/p/chromium/issues/detail?id=137681

+0

是的,我只在擴展顯示器上看到此問題 – VMN

+0

爲什麼選擇Chrome ...爲什麼? –

6

我知道這是一個老的文章,但這裏是我的解決之道。只需使用「果*」畫面對象的屬性:

var windowSize = { 
    width: 500, 
    height: 500, 
}; 
var windowLocation = { 
    left: (window.screen.availLeft + (window.screen.availWidth/2)) - (windowSize.width/2), 
    top: (window.screen.availTop + (window.screen.availHeight/2)) - (windowSize.height/2) 
}; 
window.open(http://example.com, '_blank', 'width=' + windowSize.width + ', height=' + windowSize.height + ', left=' + windowLocation.left + ', top=' + windowLocation.top); 

基本上,「window.screen.availLeft」爲您提供了其他屏幕寬度,所以你可以添加你正常中心計算了這一點。

+0

適用於現代瀏覽器......除IE以外。酷 –

+0

完美!你很好 ;) – bArraxas