You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EmailJS表单提交后如何通过JavaScript跳转至thank-you.html

解决方案

你无法正常跳转的核心原因有两个:

  • window.open 触发的新窗口打开逻辑,在异步请求的回调中执行时,会被现代浏览器默认判定为非用户主动触发的广告弹窗直接拦截
  • 你没有把跳转代码放到正确的成功回调位置,且原代码末尾存在冗余的闭合花括号,容易引发语法错误导致逻辑不执行。

表单提交后的跳转推荐直接在当前页跳转,不要开新标签,把跳转逻辑放到EmailJS发送成功的回调函数内即可,修正后的可运行代码如下:

emailjs
    .send(
        "service_qenubp3",
        "template_htul1w9",
        templateParams,
        "FKN-7Z513oHHBUzlm"
    )
    .then(
        function (response) {
            console.log("SUCCESS!", response.status, response.text);
            setEmailSent(true);
            // 提交成功后跳转至感谢页
            window.location.href = "/thankyou.html";
        },
        function (error) {
            console.log("FAILED...", error);
            // 提交失败场景可自行加错误提示,无需跳转
        }
    );
补充说明
  • 跳转路径建议用相对路径写法,不要硬编码完整域名,后续站点迁移时不需要修改代码
  • 如果确实需要新标签页打开感谢页,不能直接在回调里调window.open,需要在调用emailjs.send之前提前声明一个空窗口变量,等请求成功后再给该变量赋值目标地址,绕过浏览器弹窗拦截,但常规表单场景不推荐这种交互
  • 调整代码后注意检查函数的花括号配对,删掉原代码末尾多余的两层闭合符号,避免语法报错。

内容的提问来源于stack exchange,提问作者Leads4life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 00:16:12