【问题标题】:form onsubmit delaying window.open not working [duplicate]表单onsubmit延迟window.open不起作用[重复]
【发布时间】:2020-08-26 08:16:03
【问题描述】:

过去几个小时我一直在尝试解决这个问题,我有表单以及用户何时提交,

会弹出新窗口,但我希望它稍微延迟,设置 setTimeout 不起作用,我不知道为什么。

示例:

<form method="post" target="print_popup" action="https://example.com" onsubmit="window.open('about:blank','print_popup','width=1000,height=800');">
<input type="hidden" name="param" value="foobar">
<input id="1" type="submit" value="Submit request">

【问题讨论】:

  • 那是因为您没有阻止onsubmit回调中触发默认提交事件,所以用户在提交表单时会立即重定向到表单的操作。

标签: javascript html


【解决方案1】:

认为您需要将表单的 target 属性设置为 _blank 以允许打开新上下文:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

我还会检查 chrome/您选择的浏览器是否会阻止您的弹出窗口

【讨论】:

  • 打开窗口并做POST请求不是问题,我想要的是延迟window.open 1-3秒。我在 Chrome 上
  • 如果您将 onsubmit 回调移动到单独的方法中,则可能更容易调试它为什么不起作用。 setTimeout 将是在执行操作之前等待片刻的正确方法。
  • 你能分享一下可行的示例代码吗?我仍在努力理解这一点。
猜你喜欢
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 1970-01-01
相关资源
最近更新 更多