Mengapa saya tidak bisa membuka tab dengan tombol html saat berada di toko web chrome?

11

Saya mendapatkan halaman di frontend saya dengan tombol yang berbeda, semua tombol, dengan sendirinya, berfungsi dengan baik, tetapi jika saya mengklik tombol yang membuka ekstensi di toko web chrome dan mengklik tombol lain setelahnya, halaman tidak terbuka .

Ini adalah contoh dari apa yang saya bicarakan. Jika Anda mengklik tombol tanpa menutup tab yang terbuka, tombol yang Anda klik setelah toko web chrome terbuka tidak akan berpengaruh. Adakah yang tahu mengapa itu dan bagaimana cara mengatasinya?

https://html-ichr7r.stackblitz.io

Ini kode untuk itu.

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

Bantuan apa pun dihargai!

EDIT : Saya baru tahu bahwa itu bekerja di firefox, masih tidak tahu mengapa itu tidak bekerja di Chrome.

Ckuessner
sumber
Itu sangat aneh. Yang bisa saya pikirkan adalah chrome harus membajak objek jendela untuk beberapa alasan. Mungkin Anda harus membuat tiket pada chromium jika Anda tidak dapat menyelesaikannya
0_0

Jawaban:

2

Saya punya sedikit solusi: untuk perubahan tautan webstore Google Anda popupke sesuatu yang lain seperti popupWindow, jadi Anda akan memiliki:

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

Anda sebenarnya akan memiliki dua popup berbeda dengan kode ini.

Tentang penjelasannya, saya agak gelap dengan yang ini. Saya pikir Chrome mencegah mengeksekusi JS https://chrome.google.com/webstore/*sebagai langkah keamanan. Anda dapat membaca lebih lanjut tentang masalah serupa di sini dan di sini di sini.

Tambahan (setelah memikirkannya):

Ini mungkin langkah cerdas oleh pengembang Chrome. Dengan tidak mengizinkan JS apa pun untuk mengubah halaman apa pun https://chrome.google.com/webstore/, mereka yakin bahwa tidak ada ekstensi yang dapat mengubah halaman ini. Immagine jika Anda memasang ekstensi yang melakukan hal tersebut di iklan dengan cukup baik sehingga akan mendapatkan skor positif, sementara itu juga mengubah halaman ekstensi webstore. Ini bisa menipu pengguna untuk memasang ekstensi (perangkat lunak / adware-ish) tambahan atau perangkat lunak yang akan menginfeksi browser pengguna atau komputer.

Dirk J. Faber
sumber
Ya, membukanya di tab baru berfungsi dengan baik. Mungkin toko web Chrome dipandang sebagai semacam inbuild-Appstore untuk Google Chrome dan karena itu ia berperilaku berbeda? Hal yang sangat aneh.
Ckuessner
Saya yakin ini dilakukan untuk alasan keamanan. Saya telah menambahkan kemungkinan alasan untuk jawaban saya.
Dirk J. Faber
0

Saya juga tidak mengerti mengapa ini terjadi tetapi saya punya cara coba ini.

  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
sumber