Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么OpenLink在iPad Safari上的异步处理程序中不起作用?_Javascript_Reactjs_Async Await_Mobile Safari - Fatal编程技术网

Javascript 为什么OpenLink在iPad Safari上的异步处理程序中不起作用?

Javascript 为什么OpenLink在iPad Safari上的异步处理程序中不起作用?,javascript,reactjs,async-await,mobile-safari,Javascript,Reactjs,Async Await,Mobile Safari,下面是一些关于以编程方式打开空白链接的奇怪事情 环境: 设备:iPad14 浏览器:Safari最新版本 一个按钮正在处理异步等待操作,然后触发打开链接作为空目标。我不知道为什么它不起作用 <button onClick={async () => { // handling some await heavy operation // await until it succeed window.open('some url', '_blank'); // this is

下面是一些关于以编程方式打开空白链接的奇怪事情

环境:

  • 设备:iPad14
  • 浏览器:Safari最新版本
一个按钮正在处理异步等待操作,然后触发打开链接作为空目标。我不知道为什么它不起作用

<button onClick={async () => {
  // handling some await heavy operation
  // await until it succeed
  window.open('some url', '_blank'); // this is not working
} />
{
//处理一些等待重操作
//等待成功
window.open('someurl','u blank');//这不起作用
} />

欢迎提出任何建议

浏览器倾向于阻塞
窗口。如果调用不能直接绑定到用户交互,例如单击或其他操作,请打开
。通过引入任何异步的东西,你就破坏了直接连接。对于浏览器来说,这看起来是一样的,就像你试图在没有任何用户交互的情况下打开这个弹出窗口一样——这是垃圾邮件广告弹出窗口的典型标志,因此它被阻止了


基本上,您只能直接单击按钮打开弹出窗口,然后根据异步操作的结果更改弹出窗口中加载的URL。(打开带有空URL的弹出窗口或
about:blank
通常是有效的,如果您在点击按钮时没有真正的目标URL,并且必须等待异步操作才能获得它。)

浏览器倾向于阻塞
窗口。如果调用不能直接绑定到用户交互,请打开
,比如咔嗒一声什么的。通过引入任何异步的东西,你就破坏了直接连接。对于浏览器来说,这看起来是一样的,就像你试图在没有任何用户交互的情况下打开这个弹出窗口一样——这是垃圾邮件广告弹出窗口的典型标志,因此它被阻止了。非常感谢你的快速评论,这是合理的。你对这种情况下的手术有什么建议?真的很感激!基本上,您只能直接单击按钮打开弹出窗口,然后根据异步操作的结果更改弹出窗口中加载的URL。(打开弹出窗口时使用
about:blank
,因为“URL”通常是有效的,如果您在点击按钮时没有真正的目标URL,并且必须等待异步操作才能获得它。)太棒了,谢谢!顺便说一句,我可以像下面这样解决这个问题:
const newTabInstance=window.open('''u blank')
//等待处理程序
非常感谢您的努力!酷!我根据我的评论创建了一个答案。