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

Google Apps Script表单嵌入Squarespace iframe无法阻止默认提交问题求助

问题根因
  • 事件监听错误:原生JavaScript不存在window.ready事件,你代码中写的window.addEventListener( "ready", preventFormSubmit )完全不会触发,导致preventFormSubmit函数从未运行,自然无法拦截表单提交。
  • base标签配置问题:<head>中的<base target="_top">会强制页面内所有表单、链接默认在顶层窗口跳转,只要拦截没生效就会直接跳出iframe跳转到谷歌空白页。
  • 提交事件处理逻辑缺失:你在表单onsubmit属性中直接绑定了handleFormSubmit函数,但没有同步阻止默认提交行为,存在逻辑漏洞。
修复步骤
  1. 修正事件监听代码,打开你的js.html文件,将错误的ready事件监听替换为原生支持的事件:
// 替换原来的 window.addEventListener( "ready", preventFormSubmit );
// 方案1:DOM加载完成就执行,触发更快
document.addEventListener('DOMContentLoaded', preventFormSubmit);
// 方案2:用官方文档推荐的load事件,等所有资源加载完成再执行
// window.addEventListener('load', preventFormSubmit);
  1. 调整base标签或表单target属性,二选一即可:
  • 方案1:直接删除<head>中的<base target="_top" >标签
  • 方案2:如果需要保留base标签,给form标签添加target="_self"属性:
<form id="alternative-booking-form-1" target="_self" onsubmit="handleFormSubmit(this)" >
  1. 给表单提交逻辑加双重保险,直接在onsubmit绑定中就阻止默认提交,修改form标签的onsubmit属性为:
<form id="alternative-booking-form-1" onsubmit="event.preventDefault(); handleFormSubmit(this);" >
  1. 额外语法修正(可选):你注释掉的alert代码存在语法错误,等号需要替换为加号,后续取消注释时需要调整:
// 修正前:alert( "forms prevented from submitting: " = forms.length );
// 修正后:alert( "forms prevented from submitting: " + forms.length );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 07:15:04