如何在Google Sites嵌入的JS中获取父页面当前URL?
解决Google Sites嵌入内容获取父页面URL的问题
Google Sites的嵌入内容运行在独立的iframe沙箱环境中,受浏览器同源策略限制,直接通过window.parent.location.href这类方法访问父页面URL会触发权限错误,无法直接获取。
目前没有官方支持的绕过方案,可尝试两种间接实现方式:
URL参数传递法
在嵌入iframe时,手动将当前sites页面的URL编码后作为参数附加到嵌入内容的地址中。例如:# 假设嵌入内容地址为 https://your-content.googleusercontent.com/embed.html # 修改为带参数的地址 https://your-content.googleusercontent.com/embed.html?parentUrl=https%3A%2F%2Fsites.google.com%2Fyour-domain%2Fyour-page随后在嵌入的JS中读取该参数:
const parentUrl = new URLSearchParams(window.location.search).get('parentUrl'); console.log(parentUrl); // 输出父页面的sites.google.com链接Google Workspace专属脚本方案
若你的Google Sites属于Google Workspace域名,可借助Apps Script实现:- 编写Apps Script脚本,在页面加载时将当前页面URL写入共享存储(如Google Sheet);
- 嵌入内容通过Apps Script的API接口读取存储的URL值。
此方法需配置相应权限,操作流程相对复杂。
⚠️ 注意:不要尝试利用浏览器漏洞绕过同源策略,这类手段存在安全风险,且随时可能被Google封堵。
内容的提问来源于stack exchange,提问作者Tascal
相关产品推荐
相关产品推荐

