如何在Safari iPhone上在新窗口中打开一个URL

5
无论何时我尝试使用window.open()打开一个URL时,都没有弹出窗口。因此我尝试了以下方法。
<input
  id="googleLink"
  onclick="window.open('https://www.google.com', '_blank');"
  style="display: none"
>

我尝试使用TypeScript点击它

this.googleLink = document.getElementById("googleLink") as HTMLElement;
this.googleLink.click();

请阅读以下内容:

window.open(url, '_blank'); 在iMac/Safari上无法工作

但是这些都没有起到帮助作用。我没有在异步函数中运行代码。我有一台iPhone 11和一台7,但两者均无法使用。在安卓和PC上可以正常工作。我需要将URL在新窗口中打开。

由于我正在使用pixi js,因此需要使用onClick来完成此操作,它是被单击的pixi容器。

设置href也无济于事,因为我希望页面在新标签页中打开。

5个回答

3

这个方法同样适用于Safari,但你可以通过添加target="_blank"属性为链接添加目标。这将在新的浏览器选项卡中打开链接,在Safari中也会在新窗口中打开。这里是一个例子:

<a href="https://example.com" target="_blank">Link text.</a>

在您的情况下,将输入包装在链接中:
 <input
  id="googleLink"
  style="display: none"
>

如果您不想使用HTML实现此操作,而是使用单击函数,则还可以使用onclick="location.href='https://example.com'"


我想使用onClick函数来实现,因为被点击的元素是一个canvas元素。而且设置href更改不能打开一个新窗口。所以这不是解决我的问题的方法。 - anonymous-dev

1
您可以尝试以下内容。
    <canvas id="myCanvas" width="200" height="100" style="border: 1px solid #000;" onclick="myFunction('thisURL')"></canvas>


  <script>
    function myFunction(url) {

      window.open(url, '_blank').focus();

    }
  </script>

1

你检查过在Safari安全设置中是否禁用了弹出窗口拦截器吗?移动版Safari也是同样的情况。


是的,我知道。但这正是问题所在。我需要能够在新标签页中打开链接,而不需要用户去更改设置。 - anonymous-dev
那么,由于Safari的安全规则,这是不可能的。你只能在新标签页中打开。 - Bernard

-1
尝试在您的脚本中使用defer属性替换async。

同时,为此使用onClick window.open(url_inquotation)。 - Proking73Questioneer

-1
我做了类似的事情:
  const aElem = document.createElement("a");
  aElem.href = url;
  aElem.target = "_blank";
  document.body.append(aElem);
  aElem.click();
  aElem.remove();

像魔术一样好用 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接