En mi aplicación web, necesito saber si puedo abrir una nueva ventana o no (por ejemplo, con target='_blank'
). Puedo abrir una nueva ventana de forma segura cuando se ejecuta en un navegador, pero no cuando se ejecuta como PWA (en modo standalone
).
Para probar si puedo abrir una nueva ventana, estoy usando la consulta de medios display-mode
, así:
document.body.innerText = 'Your display-mode is ' +JSON.stringify( ['fullscreen', 'standalone', 'minimal-ui', 'browser'].filter( mode => window.matchMedia(`(display-mode: ${mode})`).matches))
Esto funciona en Firefox y Safari, ambos reportan el modo browser
. ¡Pero Chrome, cuando su ventana está maximizada, informa el modo de fullscreen
! Esto no tiene sentido, porque el significado de fullscreen
es "Se usa toda el área de visualización disponible y no se muestra ningún cromo de agente de usuario".
Preguntas:
browser
?