Ako urobiť chrome.windows.vytvoriť zobraziť okno na rovnakom displeji?

0

Otázka

Robím rozšírenie prehliadača chrome, ktoré sa otvorí popup okno po kliknutí na tlačidlo injekčne do stránky. Všetko funguje bezchybne odhliadnuc od skutočnosti, že okno je zobrazené na hlavnom displeji, a nie jedného okna prehliadača vyvolanie kontextového je na. Ako mám zvládnuť? Používate Mac s vlastné grafické usporiadanie, ak je to relevantné. Rád by som sa na okno, aby sa len pozri na hranice okna pochádzal z.

Z toho, čo som chápania toto zahŕňa niektoré komplikované zobrazí pixel výpočet, ale ako sa dostať displej veľkosti v tejto súvislosti? Dúfam, že chápete, čo hovorím, a že som zahrnuté všetky relevantné údaje. Som vrátane môj kód pre otvorenie okna nižšie:

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

Vďaka všetkým za pomoc.

1

Najlepšiu odpoveď

0

Tento odkaz: https://stackoverflow.com/a/25830431/3218811

Viedol ma do nájsť odpoveď v screen objekt. Tam sú availLeft a availTop vlastnosti, ktoré predstavujú presné vzťahy obrazoviek opatrenia. Pracuje na Mac, mám na testovanie iných platformách, ale predpokladám, že je to štandardné v 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

V iných jazykoch

Táto stránka je v iných jazykoch

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