Google Apps Script打开新窗口报错:Gmail插件Chrome失效Firefox正常
问题根因
- Chrome对内容安全策略(CSP)的执行标准比Firefox更严格,Gmail页面的CSP规则禁止未授权的内联脚本执行和
javascript:伪协议跳转,你当前的实现没有显式指定链接打开模式,Chrome默认将该跳转判定为不安全的内联脚本行为,因此触发拦截。 - 如果传入的
url参数包含javascript:前缀,Chrome会直接将其归类为内联脚本执行,触发CSP报错。
修复方案
1. 校验URL格式
确认你传入的url为标准http/https协议开头的正常链接,不要包含javascript:、data:text/html等特殊伪协议内容。
2. 补充OpenLink配置参数
修改现有代码,显式指定链接的打开方式和关闭回调规则,规避Chrome的CSP校验:
if(url) { return CardService.newActionResponseBuilder() .setOpenLink( CardService.newOpenLink() .setUrl(url) .setOpenAs(CardService.OpenAs.POPUP) // 按需求可选POPUP弹窗或FULL_WIDTH全屏 .setOnClose(CardService.OnClose.NOTHING) // 关闭后不刷新原卡片,需要刷新可改为RELOAD ) .build(); }
3. 检查插件权限配置
确认你的插件appsscript.json配置文件中已添加UI交互相关的权限,不要遗漏https://www.googleapis.com/auth/script.container.ui scope。
内容的提问来源于stack exchange,提问作者Anfuca
相关产品推荐
相关产品推荐

