ทำไมฉันไม่สามารถเปิดแท็บด้วยปุ่ม html-button ขณะอยู่ใน chrome web store ได้?


11

ฉันมีหน้าหนึ่งในส่วนหน้าของฉันที่มีปุ่มต่าง ๆ ปุ่มทั้งหมดด้วยตัวเองทำงานได้อย่างสมบูรณ์แบบ แต่ถ้าฉันคลิกปุ่มที่เปิดส่วนขยายใน chrome web store และคลิกที่ปุ่มอื่นหลังจากนั้นหน้านั้นจะไม่เปิดขึ้น .

นี่คือตัวอย่างของสิ่งที่ฉันกำลังพูดถึง หากคุณคลิกปุ่มโดยไม่ต้องปิดแท็บที่เปิดอยู่ปุ่มที่คุณคลิกหลังจากเปิดเว็บ Chrome จะไม่มีผลกระทบใด ๆ มีใครรู้บ้างไหมว่าทำไมถึงเป็นเช่นนั้นและจะแก้ไขอย่างไร?

https://html-ichr7r.stackblitz.io

นี่คือรหัสสำหรับมัน

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

ความช่วยเหลือใด ๆ ที่ชื่นชม!

แก้ไข : ฉันเพิ่งค้นพบว่ามันทำงานใน firefox แต่ก็ไม่รู้ว่าทำไมมันไม่ทำงานใน Chrome


นั่นแปลกมาก ทั้งหมดที่ฉันคิดได้ก็คือโครเมี่ยมจะต้องขโมยวัตถุหน้าต่างด้วยเหตุผลบางอย่าง บางทีคุณควรสร้างตั๋วโดยใช้โครเมียมหากคุณไม่สามารถแก้ไขได้
0_0

คำตอบ:


2

ฉันมีวิธีแก้ปัญหาบ้างเล็กน้อย: สำหรับลิงก์ Google Webstore ของคุณเปลี่ยนpopupเป็นอย่างอื่นpopupWindowคุณจึงมี:

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

คุณจะมีป๊อปอัปที่แตกต่างกันสองอันด้วยรหัสนี้

เกี่ยวกับคำอธิบายฉันอยู่ในความมืดกับอันนี้ ฉันคิดว่า Chrome กำลังป้องกันการเรียกใช้ JS https://chrome.google.com/webstore/*เป็นมาตรการรักษาความปลอดภัย คุณสามารถอ่านเพิ่มเติมเกี่ยวกับปัญหาที่คล้ายกันได้ที่นี่และที่นี่

เพิ่มเติม (หลังจากมีความคิดบางอย่างเกี่ยวกับมัน):

นี่อาจเป็นการย้ายที่ชาญฉลาดโดยนักพัฒนาของ Chrome การไม่อนุญาตให้ JS ใด ๆ แก้ไขหน้าใด ๆ บนhttps://chrome.google.com/webstore/พวกเขามั่นใจว่าไม่มีส่วนขยายที่สามารถเปลี่ยนแปลงหน้านี้ได้ Immagine ถ้าคุณติดตั้งส่วนขยายที่ทำสิ่งที่โฆษณาค่อนข้างดีดังนั้นมันจะได้รับคะแนนบวกในขณะที่มันยังเปลี่ยนหน้าของ webstore ส่วนขยาย มันอาจหลอกลวงผู้ใช้ในการติดตั้งส่วนขยายเพิ่มเติม (แฮ็ค / แอดแวร์ - ish) หรือซอฟต์แวร์ที่อาจติดเบราว์เซอร์ของผู้ใช้หรือคอมพิวเตอร์


ใช่การเปิดในแท็บใหม่นั้นใช้งานได้ดี บางที Chrome เว็บสโตร์อาจถูกมองว่าเป็น inbuild-Appstore บางประเภทสำหรับ Google Chrome และนั่นเป็นสาเหตุที่มันทำงานแตกต่างกันใช่ไหม ของแปลก ๆ จริง ๆ
Ckuessner

ฉันเชื่อว่านี่เป็นเพราะเหตุผลด้านความปลอดภัย ฉันได้เพิ่มการให้เหตุผลที่เป็นไปได้สำหรับคำตอบของฉัน
Dirk J. Faber

0

ฉันยังไม่เข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้น แต่ฉันมีวิธีลองสิ่งนี้

  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>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.