¿Por qué no puedo abrir una pestaña con un botón html mientras estoy en la tienda web de Chrome?

11

Tengo una página en mi interfaz con diferentes botones, todos los botones, por sí mismos, funcionan perfectamente, pero si hago clic en el botón que abre una extensión en la tienda web de Chrome y luego hago clic en otro botón, la página no se abre .

Aquí hay un ejemplo de lo que estoy hablando. Si hace clic en los botones sin cerrar las pestañas que se están abriendo, el botón que haga clic después de que se abra la tienda web de Chrome no tendrá efecto. ¿Alguien sabe por qué es eso y cómo solucionarlo?

https://html-ichr7r.stackblitz.io

Aquí está el código para ello.

<button id="button1" onclick="window.open('https://www.facebook.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button><br>
<button id="button2" onclick="window.open('https://www.google.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button>

<button id="button3" onclick="window.open('https://chrome.google.com/webstore/detail/dark-mode/dmghijelimhndkbmpgbldicpogfkceaj?hl=de','popup','width=700,height=300');"><strong>CONTINUAR</strong></button><br>
<button id="button4" onclick="window.open('https://www.9gag.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button>

Cualquier ayuda es apreciada!

EDITAR : Acabo de descubrir que funciona en Firefox, aunque todavía no sé por qué no funciona en Chrome.

Ckuessner
fuente
Eso es muy raro Todo lo que puedo pensar es que Chrome debe estar secuestrando un objeto de ventana por alguna razón. Tal vez debería crear un ticket en cromo si no puede resolverlo
0_0

Respuestas:

2

Tengo una solución: para el enlace de su tienda web de Google, cambie popupa algo más popupWindow, por lo que tendrá:

<button id="button1" onclick="window.open('https://www.facebook.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button><br>
<button id="button2" onclick="window.open('https://www.google.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button>

<button id="button3" onclick="window.open('https://chrome.google.com/webstore/detail/dark-mode/dmghijelimhndkbmpgbldicpogfkceaj?hl=de','popupWindow','width=700,height=300');"><strong>CONTINUAR</strong></button><br>
<button id="button4" onclick="window.open('https://www.9gag.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button>

Tendrás dos ventanas emergentes diferentes con este código.

Sobre la explicación, estoy un poco a oscuras con este. Creo que Chrome impide ejecutar JS https://chrome.google.com/webstore/*como medida de seguridad. Puede leer más sobre problemas similares aquí y aquí aquí.

Adición (después de tener algunas ideas al respecto):

Este es probablemente un movimiento inteligente de los desarrolladores de Chrome. Al no permitir que ningún JS altere ninguna de las páginas https://chrome.google.com/webstore/, están seguros de que ninguna extensión puede alterar esta página. Imagínese si instala una extensión que hace bastante bien la publicidad, por lo que obtendrá un puntaje positivo, mientras que también altera la página de la tienda web de extensiones. Podría engañar a los usuarios para que instalen extensiones o software adicionales (hacky / adware-ish) que infecten el navegador o la computadora de los usuarios.

Dirk J. Faber
fuente
Sí, abrirlo en una nueva pestaña funciona bien. Tal vez la tienda web Chrome se ve como una especie de inbuild-Appstore para Google Chrome y ¿por eso se comporta de manera diferente? Cosas realmente raras.
Ckuessner
Estoy convencido de que esto se hace por razones de seguridad. He agregado un posible razonamiento a mi respuesta.
Dirk J. Faber
0

Tampoco entiendo por qué sucede esto, pero tengo una manera de intentarlo.

  function openWindow(url, type){
    var demo = window.open(url,'popup','width=700,height=300')
      demo.window.close();
        window.open(url,'popup','width=700,height=300')
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="button1" onclick="openWindow('https://www.facebook.com/login')"><strong>CONTINUAR</strong></button><br>
<button id="button2" onclick="openWindow('https://www.google.com/')"><strong>CONTINUAR</strong></button>

<button id="button3" onclick="openWindow('https://chrome.google.com/webstore/')"><strong>CONTINUAR</strong></button><br>
<button id="button4" onclick="openWindow('https://www.9gag.com/')"><strong>CONTINUAR</strong></button>

Fahim Khan
fuente