Tại sao tôi không thể mở tab bằng nút html khi đang ở trên cửa hàng web chrome?


11

Tôi đã có một trang ở lối vào của mình với các nút khác nhau, tất cả các nút, đều tự hoạt động hoàn hảo, nhưng nếu tôi nhấp vào nút mở tiện ích mở rộng trong cửa hàng web chrome và nhấp vào nút khác sau đó, trang sẽ không mở .

Đây là một ví dụ về những gì tôi đang nói về. Nếu bạn nhấp vào các nút mà không đóng các tab đang mở, nút bạn nhấp sau khi cửa hàng chrome web mở sẽ không có hiệu lực. Có ai biết tại sao đó là và làm thế nào để làm việc xung quanh đó?

https://html-ichr7r.stackblitz.io

Đây là mã cho nó.

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

Bất kỳ trợ giúp được đánh giá cao!

EDIT : Tôi chỉ phát hiện ra rằng nó hoạt động trong firefox, nhưng vẫn không biết tại sao nó không hoạt động trong Chrome.


Điều đó rất kỳ lạ. Tất cả những gì tôi có thể nghĩ là chrome phải chiếm quyền điều khiển đối tượng cửa sổ vì một số lý do. Có lẽ bạn nên tạo một vé trên chromium nếu bạn không thể giải quyết nó
0_0

Câu trả lời:


2

Tôi có một phần giải pháp: để liên kết cửa hàng Google của bạn thay đổi popupthành thứ khác như popupWindowvậy, vì vậy bạn sẽ có:

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

Bạn thực sự sẽ có hai cửa sổ bật lên khác nhau với mã này.

Về lời giải thích, tôi có một chút trong bóng tối với cái này. Tôi nghĩ rằng Chrome đang ngăn chặn việc thực thi JS https://chrome.google.com/webstore/*như một biện pháp bảo mật. Bạn có thể đọc thêm về các vấn đề tương tự ở đây đây.

Ngoài ra (sau khi có một số suy nghĩ về nó):

Đây có lẽ là một bước đi thông minh của các nhà phát triển Chrome. Bằng cách không cho phép bất kỳ JS nào thay đổi bất kỳ trang nào trên đó https://chrome.google.com/webstore/, họ chắc chắn rằng không có phần mở rộng nào có thể thay đổi trang này. Miễn dịch nếu bạn cài đặt một tiện ích mở rộng thực hiện điều đó trong quảng cáo khá tốt để nó có được điểm tích cực, trong khi nó cũng làm thay đổi trang của cửa hàng web mở rộng. Nó có thể lừa người dùng cài đặt các phần mở rộng hoặc phần mềm bổ sung (hacky / adware-ish) sẽ lây nhiễm vào trình duyệt hoặc máy tính của người dùng.


Có, mở nó trong một tab mới hoạt động tốt. Có lẽ cửa hàng web Chrome được xem là một loại cửa hàng ứng dụng sẵn có cho Google Chrome và đó là lý do tại sao nó hoạt động khác nhau? Thứ thực sự kỳ lạ.
Ckuessner

Tôi tin rằng điều này được thực hiện vì lý do bảo mật. Tôi đã thêm lý do có thể vào câu trả lời của tôi.
Dirk J. Faber

0

Tôi cũng không hiểu tại sao điều này xảy ra nhưng tôi có cách thử nó.

  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>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.