Come rendere chrome.windows.creare mostrare la finestra sullo stesso display?

0

Domanda

Sto facendo una estensione per chrome che consente di aprire una finestra di popup al momento facendo clic sul pulsante iniettato nella pagina. Tutto funziona perfettamente a parte il fatto che la finestra è visualizzata sul display principale, e non la finestra del browser invocando il popup è su. Come posso gestire questo? Utilizza Mac con display custom accordo, se pertinenti. Mi piacerebbe per la finestra per riferirsi ai limiti della finestra da cui proviene.

Da quello che sto capendo questo comporta alcuni elaborati visualizza pixel di calcolo, ma come ottenere dimensioni del display in che contesto? Spero che si veda quello che sto dicendo e che ho inserito tutti i dettagli pertinenti. Ho incluso il mio codice per aprire la finestra sottostante:

    chrome.windows.getCurrent((tabWindow) => {
        const popupWidth = 400;
        const popupHeight = 400;
        const leftOffset = (tabWindow.width/2)-(popupWidth/2);
        const topOffset = (tabWindow.height/3)-(popupHeight/2); 

        var infoPopupUrl = "someurl";

        chrome.windows.create(
            {
                'url': chrome.runtime.getURL(infoPopupUrl),
                'type': "popup",
                'width': popupWidth,
                'height': popupHeight,
                'left': Math.round(leftOffset),
                'top': Math.round(topOffset),
                'focused': true
            }
        );
    });

Grazie a tutti per l'aiuto.

1

Migliore risposta

0

A questo link: https://stackoverflow.com/a/25830431/3218811

Mi ha portato a trovare risposta nel screen oggetto. Ci sono availLeft e availTop proprietà che rappresentano l'esatto relazioni di schermi di regime. Funziona su Mac, devo testare altre piattaforme, ma suppongo che è standard in Chrome:

        const leftOffset = (tabWindow.width/2)-(popupWidth/2)+screen.availLeft;        
        const topOffset = (tabWindow.height/3)-(popupHeight/2)+screen.availTop; 
2021-11-17 11:16:22

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................