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

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

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

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에서 작동하지 않는 이유를 모르겠습니다.



답변

귀하의 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/확장명이이 페이지를 변경할 수 없음을 확신합니다. 광고를하는 확장 프로그램을 설치하면 긍정적 인 점수를 얻지 만 확장 웹 스토어의 페이지도 변경한다고 가정 해보십시오. 사용자에게 브라우저 또는 컴퓨터를 감염시킬 수있는 추가 (해키 / 애드웨어 방식) 확장 프로그램 또는 소프트웨어를 설치하도록 속일 수 있습니다.


답변

또한 왜 이런 일이 발생하는지 이해하지 못하지만 시도 할 방법이 있습니다.

  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>


답변