制作能够在弹出窗口后重定向的JavaScript代码

3
我有以下由constantcontact提供的表单,当他们点击提交后,它会打开一个constant contact页面。然而,我希望在他们点击提交后还能重定向到另一页。
<form name="ccoptin" action="http://visitor.r20.constantcontact.com/d.jsp" target="_blank" method="post" style="margin-bottom:2;">
<input type="hidden" name="llr" value="cjdttecab">
<input type="hidden" name="m" value="1101813878050">
<input type="hidden" name="p" value="oi">
<font style="font-weight: normal; font-family:Arial; font-size:12px; color:#000000;">Email:</font> <input type="text" name="ea" size="20" value="" style="font-size:10pt; border:1px solid #999999;">
<input type="submit" name="go" value="Submit" class="submit" style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:10pt;">
</form>

有人可以帮我吗?我在问题中粘贴了一些带有<pre>标签的HTML代码,但它没有正确显示问题? - Luis Valencia
请突出显示未显示的代码并按键盘上的Ctrl+K。 - Rick Kukiela
2个回答

3

更新至2023代码

Constantcontact的表单生成器已被弃用,因此我将其删除

给表单一个ID,并使用setTimeout延迟提交后的感谢页面

window.addEventListener('DOMContentLoaded', () => { // when page has loaded
  document.getElementById('ccoptin').addEventListener('submit',() => setTimeout(() => {
      location.replace('thanks.html')
    }, 100)
  );
});
<form id="ccoptin" action="pageyouwantoload.php" target="_blank" method="post">


奇怪。Win7上的Chrome 14和15不会出现这种情况。 - binarious
希望最终用户没有缓慢的互联网连接或旧电脑...我几乎认为100毫秒在世界上每种情况下都不足够时间... - Rick Kukiela
100毫秒是为了让Chrome处理表单提交时看似令人震惊的事件,而不是从提交返回所需的时间。 - mplungjan

1

既然您正在使用JSP解析响应,那么您是否可以在处理表单插入的代码末尾添加以下内容:

response.sendRedirect("your/URL/here");

只是按照正常方式进行吗?还是因为某种原因你需要使用javascript来完成这个操作?

啊,我刚才意识到您无法控制接收常量联系人脚本 - 他们没有设置可以发送到您选择的页面进行重定向吗?我会研究一下这个。

编辑:

下面的超时函数将起作用,但它假定最终用户启用了javascript。此外,100毫秒的等待时间不算长 - 如果由于任何原因网络出现滞后,那么帖子将无法发送,因此它不会100%地工作,这是一个承诺。

正确的方法是使用这个: http://community.constantcontact.com/t5/Documentation/Constant-Contact-Signup-Form-Generator-CCSFG/ba-p/25033

设置一个使用api的私有托管解决方案。这几乎不需要任何编程知识,您仍然可以自定义生成的表单以匹配您的网站。它在PHP中运行,因此您的服务器必须支持它,但现在大多数服务器都支持。


1
已经发布了那个链接。然而,100毫秒不是发送表单的时间,而是Chrome需要克服发送表单的震惊所需的时间。通过在替换中添加微小的延迟,表单可以正常工作。 - mplungjan

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