window.moveTo () не будет go больше, чем половина моего экрана в firefox - PullRequest
0 голосов
/ 25 апреля 2020

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

    popup = open("", 'popup', 'top=' + top + ', left=' + left + ', width=' + width + ',height=' + height + ',toolbar=no,scrollbars=no,resizable=yes');
    popup.moveTo(1440, 0); 

Если при открытии окна установить влево на 1440, оно появляется в углу моего экрана при использовании функции moveTo это устанавливает его в середине экрана, даже если я увеличу значение. Это потому, что у меня есть экран сетчатки, если да, то как я могу это исправить? это происходит только в Firefox

Edit, полный код с использованием шаблона tomer raitz

<button onclick="openWin()">Open "myWindow"</button>
<button onclick="moveWin()">Move "myWindow"</button>
<script type="text/javascript">
    function moveWin() {
        popup.moveTo(1400, 0);
        popup.focus();
    }

    function openWin() {
        let left = "0px"
        let top = "0px"
        let width = 200;
        let height = 200;
        popup = window.open("", '', `width=${width} height=${height} top=${top} left=${left}`, 'toolbar=no scrollbars=no resizable=yes');
    }
</script>

Результат в сафари Result in safari Результат в firefox Ночь enter image description here

1 Ответ

0 голосов
/ 25 апреля 2020

Если вы хотите, чтобы окно находилось посередине экрана, вам необходимо рассчитать размер экрана следующим образом:

<button onclick="openWin()">Open "myWindow"</button>
<button onclick="moveWin()">Move "myWindow"</button>

function moveWin() {
let screenWidth = 0
let screenHeight = 0;
if(window.outerWidth - window.innerWidth >0){
screenWidth = (window.innerWidth - popup.innerWidth) /2 
}
else{
screenWidth = (window.outerWidth - popup.innerWidth) /2 
}

screenHeight = (window.outerHeight - popup.innerHeight) /2 
  popup.moveBy(screenWidth, screenHeight);
  popup.focus();
}

function openWin(){
let left = "0px"
let top = "0px"
let width = 200;
let height = 200;
 popup = window.open("", '', `width=${width} height=${height} top=${top} left=${left}`,'toolbar=no scrollbars=no resizable=yes');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...