크롬 웹 스토어에있는 동안 HTML 버튼이있는 탭을 열 수없는 이유는 무엇입니까?


11

프론트 엔드에 다른 버튼이있는 페이지가 있으며 모든 버튼이 자체적으로 완벽하게 작동하지만 크롬 웹 스토어에서 확장 프로그램을 여는 버튼을 클릭 한 다음 다른 버튼을 클릭하면 페이지가 열리지 않습니다 .

여기 내가 말하는 것에 대한 예가 있습니다. 열려있는 탭을 닫지 않고 버튼을 클릭하면 크롬 웹 스토어가 열린 후 클릭 한 버튼이 적용되지 않습니다. 그 이유와 그 해결 방법을 아는 사람이 있습니까?

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 웹 스토어 링크 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이 https://chrome.google.com/webstore/*보안 조치로 JS 실행을 방해한다고 생각 합니다. 여기여기 에서 비슷한 문제에 대한 자세한 내용을 읽을 수 있습니다 .

추가 (생각 해본 후) :

이것은 아마도 Chrome 개발자의 현명한 움직임 일 것입니다. JS가의 페이지를 변경하지 못하도록하여 https://chrome.google.com/webstore/확장명이이 페이지를 변경할 수 없음을 확신합니다. 광고를하는 확장 프로그램을 설치하면 긍정적 인 점수를 얻지 만 확장 웹 스토어의 페이지도 변경한다고 가정 해보십시오. 사용자에게 브라우저 또는 컴퓨터를 감염시킬 수있는 추가 (해키 / 애드웨어 방식) 확장 프로그램 또는 소프트웨어를 설치하도록 속일 수 있습니다.


예, 새 탭에서 열면 정상적으로 작동합니다. Chrome 웹 스토어는 Chrome 용 inbuild-Appstore의 일종으로 간주되어 다르게 작동하는 이유는 무엇입니까? 정말 이상한 것들.
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.