otevřená pozice vyskakovacího okna v chromu

Toto je chyba v prohlížeči Chrome, když se na sekundárním monitoru otevře vyskakovací okno. Zdá se, že lidé z Chrome říkají, že se jedná o bezpečnostní problém (i když je mimo mě, jak je to bezpečnostní problém).

Když teď otevřu vyskakovací okno na NEEXISTUJÍCÍM sekundárním monitoru, pochopil jsem, že jde o bezpečnostní problém, ale... co už.

Zde je odkaz na diskusi na toto téma:

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


Vím, že je to starý příspěvek, ale tady je moje řešení. Stačí použít vlastnosti "avail*" objektu obrazovky:

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

V podstatě "window.screen.availLeft" vám dává šířku ostatních obrazovek, takže k tomu můžete přidat svůj normální výpočet středu.


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

pro Chrome ...