Estoy creando una extensión de Chrome que abre una ventana emergente al hacer clic en el botón inyectado en la página. Todo funciona a la perfección, aparte del hecho de que la ventana se muestra en la pantalla principal, y no en la ventana del navegador que invoca la ventana emergente. ¿Cómo puedo manejar esto? Usar Mac con arreglo de pantalla personalizado, si eso es relevante. Me gustaría que la ventana solo se refiera a los límites de la ventana de la que se originó.
Por lo que entiendo, esto implica un cálculo elaborado de píxeles de pantalla, pero ¿cómo obtener tamaños de pantalla en ese contexto? Espero que vea lo que estoy diciendo y que incluí todos los detalles relevantes. Incluyo mi código para abrir la ventana a continuación:
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 } ); });Gracias a todos por la ayuda.
Este enlace: https://stackoverflow.com/a/25830431/3218811
Me llevó a encontrar la respuesta en el objeto de la screen . Hay availLeft de disponibilidad y availTop que representan las relaciones exactas de los arreglos de pantallas. Funciona en Mac, tengo que probar otras plataformas, pero supongo que es estándar en Chrome:
const leftOffset = (tabWindow.width/2)-(popupWidth/2)+screen.availLeft; const topOffset = (tabWindow.height/3)-(popupHeight/2)+screen.availTop;