【问题标题】:How to stop redirected URL from being masked?如何阻止重定向的 URL 被屏蔽?
【发布时间】:2019-11-03 05:58:48
【问题描述】:

我的谷歌应用程序脚本(附加到谷歌文档)中有一个doGet 函数,它作为网络应用程序发布,我希望将用户重定向到另一个网页。重要的是,我希望将它们重定向的页面的 URL 显示在地址栏中,并将它们重定向的页面的标题作为选项卡的标题(在 Chrome 中)。

我尝试使用元刷新标签,并设置window.location.href。这两个都正确重定向,但它们在地址栏中显示地址应用程序的 URL,而不是用户被重定向到的页面的 URL。

以下附在 Google 文档中的脚本说明了问题。

function doGet(request) {
  var drive = DriveApp;
  var docs = DocumentApp;
  var Id = docs.getActiveDocument().getId();
  var document = docs.openById(drive.getFileById(Id).makeCopy().getId());
  document.setName("Test doc 2");
  var URL = document.getUrl();
  return HtmlService.createHtmlOutput('<meta http-equiv="refresh" content="0; url=' + URL + '" />')
}

将脚本发布为 Web 应用程序,然后访问 URL 会将您重定向到新创建的文档,但地址栏中显示的是脚本的 URL。

有关示例,请参阅此 Google 文档:https://docs.google.com/document/d/1HpBkNGGGjKj3W6QXThtGdniSO_UTANo8LcqmgZowdTQ/edit

【问题讨论】:

  • 您的意思是希望 WebApp 重定向到不在 WebApp 内或不在 WebApp 内的页面?也许您可以提供更多代码,以便我们自己确认行为,即minimal reproducible example
  • @Cooper 感谢您的回复。我想重定向到由脚本创建的新文档。我已经扩充了代码示例来说明这一点。

标签: redirect google-apps-script web-applications google-docs


【解决方案1】:

既然你的 html 是 loaded in a inner iframe,你应该使用

window.top.location = url

加载到顶部框架中。

【讨论】:

    猜你喜欢
    • 2014-07-20
    • 2012-12-10
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多