всплывающая открытая позиция в Chrome - PullRequest
18 голосов
/ 20 июля 2011

Когда я использую Firefox, а затем использую window.open('blah.com','blah','left=-30,top=-300');, всплывающее окно открывается на моем втором дисплее над моим первым, но в Chrome всплывающее окно просто открывается на left=0,top=0.Есть ли причина, по которой Chrome делает это и как я могу решить эту проблему?

Спасибо!

Ответы [ 5 ]

18 голосов
/ 10 июля 2014

Это ошибка в Chrome, когда на дополнительном мониторе открывается всплывающее окно.Люди из Chrome, кажется, говорят, что это проблема безопасности (хотя то, как это проблема безопасности, мне не подходит).

Теперь, открыв всплывающее окно на несуществующем дополнительном мониторе, я могу понять, что это проблема безопасности, но ... что угодно.

Вот ссылка на обсуждениедело:

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

11 голосов
/ 12 октября 2015

Я знаю, что это старый пост, но вот мое решение. Просто используйте свойства "util *" объекта экрана:

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" дает вам ширину других экранов, чтобы вы могли добавить к этому нормальное вычисление центра.

9 голосов
/ 31 июля 2013
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);

для Chrome ...

2 голосов
/ 20 июля 2011

Честно говоря, я думаю, что это ошибка в Chrome, но в настоящий момент я не знаю, как это исправить, так как я сам новичок в JavaScript.Извините, я уверен, что это не тот ответ, который вы искали.

0 голосов
/ 12 сентября 2012

Я знаю, что это сообщение старое, но у меня были похожие проблемы:

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, но не в Chrome .Кроме того, обратите внимание, это не за пределами области отображения ...

...