在Chrome网上商店中时,为什么无法使用html按钮打开标签页?


11

我的前端有一个页面,其中包含不同的按钮,所有按钮都可以单独正常工作,但是如果我单击在chrome网站商店中打开扩展程序的按钮,然后再单击另一个按钮,则该页面不会打开。

这是我正在谈论的事的典范。如果您在未关闭要打开的标签的情况下单击按钮,则在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中使用。


那太奇怪了。我能想到的是chrome由于某种原因必须劫持窗口对象。如果您无法解决问题,也许应该在铬上创建工单
0_0

Answers:


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浏览器正在阻止执行JS https://chrome.google.com/webstore/*作为一种安全措施。您可以在此处此处阅读有关类似问题的更多信息。

加法(对此有所考虑之后):

这可能是Chrome开发人员的明智之举。通过不允许任何JS更改上的任何页面https://chrome.google.com/webstore/,他们可以确保没有扩展程序也可以更改此页面。想象一下,如果您安装的扩展程序在广告中做得很好,那么它将获得积极的成绩,同时也会更改扩展程序网上商店的页面。它可能诱使用户安装会感染用户浏览器或计算机的其他扩展程序或软件。


是的,在新标签页中打开它可以正常工作。也许Chrome网络商店被视为Google Chrome的某种内置应用商店,这就是为什么它的行为有所不同?真的很奇怪。
Ckuessner '19

我确信这样做是出于安全原因。我在回答中添加了可能的推理。
德克·法伯

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>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.