Perché non riesco ad aprire una scheda con un pulsante html mentre mi trovo sul Chrome Web Store?


11

Ho una pagina nel mio frontend con pulsanti diversi, tutti i pulsanti, da soli, funzionano perfettamente, ma se faccio clic sul pulsante che apre un'estensione nel Chrome Web Store e successivamente clic su un altro pulsante, la pagina non si apre .

Ecco un esempio di ciò di cui sto parlando. Se fai clic sui pulsanti senza chiudere le schede che si aprono, il pulsante su cui fai clic dopo l'apertura del Chrome Web Store non avrà alcun effetto. Qualcuno sa perché è così e come aggirarlo?

https://html-ichr7r.stackblitz.io

Ecco il codice per questo.

<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>

Qualsiasi aiuto è apprezzato!

EDIT : Ho appena capito che funziona in Firefox, ma non so ancora perché non funziona in Chrome.


È molto strano. Tutto ciò che posso pensare è che Chrome deve dirottare l'oggetto della finestra per qualche motivo. Forse dovresti creare un biglietto sul cromo se non riesci a risolverlo
0_0

Risposte:


2

Ho in qualche modo una soluzione: per il collegamento del tuo webstore di Google cambia popupin qualcosa di simile popupWindow, quindi avrai:

<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>

Avrai effettivamente due diversi popup con questo codice.

Per quanto riguarda la spiegazione, sono un po 'al buio con questo. Penso che Chrome stia impedendo l'esecuzione di JS https://chrome.google.com/webstore/*come misura di sicurezza. Puoi leggere di più su problemi simili qui e qui qui.

Aggiunta (dopo averci pensato):

Questa è probabilmente una mossa intelligente da parte degli sviluppatori di Chrome. Non permettendo a nessun JS di modificare nessuna delle pagine su https://chrome.google.com/webstore/, sono sicuri che anche nessuna estensione può modificare questa pagina. Immagine se installi un'estensione che fa abbastanza bene la pubblicità in modo da ottenere un punteggio positivo, mentre altera anche la pagina del webstore di estensione. Potrebbe indurre gli utenti a installare estensioni o software aggiuntivi (hacky / adware-ish) che potrebbero infettare il browser o il computer degli utenti.


Sì, aprirlo in una nuova scheda funziona bene. Forse il webstore di Chrome è visto come una sorta di inbuild-Appstore per Google Chrome ed è per questo che si comporta diversamente? Roba davvero strana.
Ckuessner,

Sono convinto che ciò avvenga per motivi di sicurezza. Ho aggiunto un possibile ragionamento alla mia risposta.
Dirk J. Faber,

0

Inoltre non capisco perché questo accada, ma ho modo di provarlo.

  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>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.