2011-07-19 7 views
12

firefoxを使用していてwindow.open('blah.com','blah','left=-30,top=-300');を使用すると、私の最初のディスプレイの上にポップアップが表示されますが、クロムではポップアップがleft=0,top=0で開きます。クロムがこれをやっている理由はありますか?どのように問題を解決できますか?popup open position in chrome

ありがとうございます!

+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); 


はないクロームのポップアップFirefoxでウィンドウが、を--centers。また、通知は、これは、表示領域外ではありませんクロームのための...

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のバグです。 Chromeの皆さんはこれがセキュリティ上の問題だと言われています(これはセキュリティ上の問題がどのように私を超えているのですが)。

ここで、NON-EXISTENTセカンダリモニタでポップアップウィンドウを開くと、セキュリティ上の問題は理解できますが...何でも可能です。

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