Por que não consigo abrir uma guia com um botão html enquanto estou na Chrome Web Store?

11

Tenho uma página no meu front-end com botões diferentes, todos por conta própria funcionam perfeitamente, mas se eu clicar no botão que abre uma extensão na Chrome Web Store e clicar em outro botão depois, a página não abrirá .

Aqui está um exemplo do que estou falando. Se você clicar nos botões sem fechar as guias que estão abrindo, o botão após a abertura da Chrome Web Store não terá efeito. Alguém sabe por que isso é e como contornar isso?

https://html-ichr7r.stackblitz.io

Aqui está o código para isso.

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

Qualquer ajuda é apreciada!

Edição : Acabei de descobrir que ele funciona no Firefox, ainda não sei por que ele não funciona no Chrome.

Ckuessner
fonte
Isso é muito estranho. Tudo o que posso pensar é que o chrome deve estar seqüestrando o objeto da janela por algum motivo. Talvez você deva criar um ticket no cromo se não conseguir resolvê-lo.
0_0

Respostas:

2

Eu tenho uma solução: para o link da sua loja virtual do Google, mude popuppara outra coisa popupWindow, então você terá:

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

Você terá dois pop-ups diferentes com esse código.

Sobre a explicação, estou um pouco no escuro com essa. Acho que o Chrome está impedindo a execução do JS https://chrome.google.com/webstore/*como medida de segurança. Você pode ler mais sobre questões semelhantes aqui e aqui aqui.

Além (depois de ter algumas idéias sobre isso):

Provavelmente, essa é uma decisão inteligente dos desenvolvedores do Chrome. Ao não permitir que nenhum JS altere nenhuma das páginas nohttps://chrome.google.com/webstore/ , eles têm certeza de que nenhuma extensão também pode alterar esta página. Imagine se você instalar uma extensão que faça a publicidade muito bem, para obter uma pontuação positiva, além de alterar a página da loja virtual de extensões. Isso poderia induzir os usuários a instalar extensões ou softwares adicionais (hacky / adware-ish) que infectariam o navegador ou o computador dos usuários.

Dirk J. Faber
fonte
Sim, abri-lo em uma nova guia funciona bem. Talvez a loja on-line do Chrome seja vista como algum tipo de App Store do Google Chrome e é por isso que se comporta de maneira diferente? Coisas realmente estranhas.
Ckuessner
Estou convencido de que isso é feito por razões de segurança. Acrescentei um possível raciocínio à minha resposta.
Dirk J. Faber
0

Eu também não entendo por que isso acontece, mas tenho uma maneira de tentar isso.

  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
fonte