首页 > 解决方案 > Appscript Webapp 超链接不起作用 - 尝试导航顶级窗口的框架已被沙盒化

问题描述

我创建了一个具有不同页面的 Web 应用程序:登录、仪表板、订单。我检查用户是否已登录,如果已登录,将重定向到仪表板。仪表板将具有下订单的链接 - 进入订单页面,一旦成功下订单,它将重定向到仪表板。

当应用程序独立使用时一切正常,但在我嵌入谷歌网站后,放置在仪表板页面(下订单)中的超链接无法处理错误消息

不安全的 JavaScript 尝试从 URL 为“https://n-n3gcqx22xvz3sn77god6de7c5ipcta6xrsyulmi-0lu-script.googleusercontent.com/userCodeAppPanel”的框架中为来源为“https://app.neelithal.com”的框架启动导航。尝试导航顶级窗口的框架是沙盒的,但未设置“allow-top-navigation”或“allow-top-navigation-by-user-activation”标志。

我已尝试使用“允许顶部导航”或“允许顶部导航按用户激活”将 appscript 嵌入到新旧站点中 - 仍然无法正常工作。

所有页面都设置有基本目标 _top 自动重定向是通过window.self.location.href = redirectUrl; - 注意 - 如果我使用window.top.location嵌入式站点将无法工作 - 只有当我使用时才有效window.self.location.href

对于超链接,我使用以下代码

<a class="waves-effect" href="<?!= appUrl ?>?v=dashboard&token=<?!= token ?>">

-- 注意我已经尝试将超链接目标设置为 "_top" "_self" "framename" 没有任何效果 - 一个或另一个坏了。

XFrameoption 设置为 ALLOWALL

    var tmp = HtmlService.createTemplateFromFile("glogin");
    return tmp.evaluate().setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

脚本以 ME 身份执行 - 访问所有人甚至 Ananymous - 使用 Google 登录进行身份验证。

Web 应用程序 URL - https://script.google.com/macros/s/AKfycbzyx5XDtVYPSN5wt_By55pZGpHMSgTnMN_wQd9uIYuG9N9mPME2/exec

Google 协作平台网址 - 带有自定义网址 - https://app.neelithal.com

标签: google-apps-scriptgoogle-sites

解决方案


推荐阅读