Dlaczego nie mogę otworzyć zakładkę z HTML przycisku będąc w internetowym sklepie Chrome?

głosy
2

Mam stronę w moim nakładka z różnych przycisków, wszystkie przyciski, na własną rękę, działa idealnie, ale jeśli kliknę przycisk, który otwiera rozszerzenia w Chrome Web Store i kliknij przycisk innego później, strona nie otwiera ,

Oto exmaple co mówię. Jeśli klikniesz przycisków bez zamykania klapki, które są otwierane, przycisk kliknięciu po otwarciu Chrome Web Store nie będzie miał wpływu. Czy ktoś wie dlaczego tak jest i jak to obejść?

https://html-ichr7r.stackblitz.io

Oto kod dla niego.

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

Każda pomoc jest mile widziana!

EDIT : Właśnie zorientowali się, że to działa w firefox, nadal nie wiem, dlaczego to nie działa w Chrome, chociaż.

Utwórz 03/12/2019 o 00:02
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

Mam nieco roztworu: dla zmiany łącza Webstore Google popupdo czegoś innego podobnego popupWindow, więc musisz:

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

Trzeba będzie mieć dwa różne wyskakujące okienka z tym kodem.

O wyjaśnienie, jestem trochę w ciemności z tego. Myślę Chrome uniemożliwia wykonywanie JS na https://chrome.google.com/webstore/*jako środek bezpieczeństwa. Możesz przeczytać więcej na temat podobnych problemów tutaj i tutaj tutaj.

Dodatek (po kilka myśli o tym):

Prawdopodobnie jest to sprytne posunięcie przez twórców Chrome. Nie pozwalając każdy JS zmieniać żadnej ze stron na https://chrome.google.com/webstore/, są pewni, że również nie rozszerzenie może ewentualnie zmienić tę stronę. Immagine jeśli zainstalować rozszerzenie, które robi się coś w reklamuje całkiem dobrze tak uzyska pozytywną ocenę, a jednocześnie także zmienia stronie sklepu internetowego przedłużacza. To może skłonić użytkowników do instalowania dodatkowych (hacky / adware-ish) rozszerzenia lub oprogramowania, które infekują przeglądarkę użytkowników lub komputera.

Odpowiedział 05/12/2019 o 00:41
źródło użytkownik

głosy
0

Ja też nie rozumiem, dlaczego tak się dzieje, ale mam sposób spróbować.

  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>

Odpowiedział 05/12/2019 o 17:17
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more