Jak zmusić chrome.windows.create wyświetlać okno na jednym ekranie?

0

Pytanie

Tworzę rozszerzenie chrome, która otwiera okno pop-up po kliknięciu przycisku, nałożone na stronę. Wszystko działa bez zarzutu, za wyjątkiem faktu, że okno jest wyświetlane na ekranie głównym, a nie na tym, w którym znajduje się okno przeglądarki, która wywołuje okno pop-up. Jak mogę sobie z tym poradzić? Użycie na komputerach Mac z interfejsem w wyświetlacza, jeśli jest to właściwe. Chciałbym, aby okno po prostu wskazywało granicy okna, z którego ono powstało.

Jak rozumiem, to zawiera pewne skomplikowane obliczenia pikseli monitorów, ale jak uzyskać wymiary wyświetlacza w tym kontekście? Mam nadzieję, że rozumiesz, o czym mówię, i że mam włączone wszystkie istotne szczegóły. Włączam swój kod, aby otworzyć okno poniżej:

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

Dziękuję wszystkim za pomoc.

1

Najlepsza odpowiedź

0

Ten link: https://stackoverflow.com/a/25830431/3218811

Doprowadziło mnie do znalezienia odpowiedzi w screen obiekt. Jest availLeft i availTop właściwości, które są dokładne proporcje lokalizacji ekranów. Działa na Mac, muszę przetestować inne platformy, ale przypuszczam, że to standard w 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

W innych językach

Ta strona jest w innych językach

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