Chromeウェブストアにいる間、htmlボタンでタブを開けないのはなぜですか?


11

フロントエンドにさまざまなボタンを備えたページがあり、すべてのボタンはそれ自体で完全に機能しますが、Chrome Webストアで拡張機能を開くボタンをクリックし、その後別のボタンをクリックすると、ページが開きません。

これが私が話していることの例です。開いているタブを閉じずにボタンをクリックした場合、Chrome Webストアが開いた後にクリックしたボタンは効果がありません。なぜそれがあり、それを回避する方法を誰かが知っていますか?

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>

このコードには、実際には2つの異なるポップアップがあります。

説明について、私はこれで少し暗いです。Chromeはhttps://chrome.google.com/webstore/*、セキュリティ対策としてJSの実行を妨げていると思います。同様の問題の詳細については、こちらこちらをご覧ください。

追加(それについていくつか考えた後):

これは、おそらくChromeの開発者による賢明な動きです。JSがのページを変更することを許可しないことによりhttps://chrome.google.com/webstore/、拡張機能がこのページを変更する可能性がないことも確認できます。広告で十分に機能する拡張機能をインストールして、正のスコアが得られると同時に、拡張機能のWebストアのページが変更されると想像してみてください。ユーザーをだまして、追加の(ハッキー/アドウェア風の)拡張機能や、ユーザーのブラウザーやコンピューターに感染するソフトウェアをインストールさせる可能性があります。


はい、新しいタブで開いても問題ありません。たぶん、Chromeウェブストアは、Google Chromeのある種のinbuild-Appstoreと見なされているので、動作が異なるのはなぜですか?本当に奇妙なもの。
クエッスナー

これはセキュリティ上の理由で行われていると確信しています。考えられる理由を回答に追加しました。
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.