当前位置: 首页 > 面试题库 >

链接到Google Apps脚本中的另一个HTML页面

岳允晨
2023-03-14
问题内容

从ScriptDbConsole.html链接到legend.html时,出现以下错误消息:

抱歉,您请求的文件不存在。请检查地址并再试一次。

这通常可以在正常环境下使用,但我猜这里不是。在script.google.com中。

在script.google.com项目中创建新的.html文件时,它会在与其他文件相同的位置创建该文件,因此此代码实际上应该正确吗?如何从ScriptDbConsole.html中打开legend.html?

<a href='legend.html' target='_blank'>Open in new window</a>

问题答案:

虽然HtmlService允许您提供HTML,但它不是“托管”页面,并且您不能直接通过URL访问Apps脚本项目中的各种html文件。而是,您的Web应用程序在发布时将具有URL,这是您唯一的URL。

您可以通过这种方式为脚本提供单独的页面,并使它们的行为类似于html文件链接。

doGet()函数在调用时会传递一个事件,我们可以利用该事件来指示我们要服务的页面。如果我们的Web应用程序ID为<SCRIPTURL>,则URL以及请求特定页面的查询字符串将如下所示:

https://script.google.com/macros/s/<SCRIPTURL>/dev?page=my1

使用模板化的HTML,我们可以动态生成必要的URL +
querystring。在我们的中doGet(),我们只需要解析querystring即可确定要投放的页面。

这是脚本,其中有两个示例页面,其中包含在它们之间切换的按钮。

代码

/**
 * Get the URL for the Google Apps Script running as a WebApp.
 */
function getScriptUrl() {
 var url = ScriptApp.getService().getUrl();
 return url;
}

/**
 * Get "home page", or a requested page.
 * Expects a 'page' parameter in querystring.
 *
 * @param {event} e Event passed to doGet, with querystring
 * @returns {String/html} Html to be served
 */
function doGet(e) {
  Logger.log( Utilities.jsonStringify(e) );
  if (!e.parameter.page) {
    // When no specific page requested, return "home page"
    return HtmlService.createTemplateFromFile('my1').evaluate();
  }
  // else, use page parameter to pick an html file from the script
  return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate();
}

my1.html

<html>
  <body>
    <h1>Source = my1.html</h1>
    <?var url = getScriptUrl();?><a href='<?=url?>?page=my2'> <input type='button' name='button' value='my2.html'></a>
  </body>
</html>

my2.html

<html>
  <body>
    <h1>Source = my2.html</h1>
    <?var url = getScriptUrl();?><a href='<?=url?>?page=my1'> <input type='button' name='button' value='my1.html'></a>
  </body>
</html>


 类似资料:
  • 问题内容: 如何在php脚本中向另一个php页面发出发布请求?我有一台前端计算机作为html页面服务器,但是当用户单击按钮时,我希望后端服务器进行处理,然后将信息发送回前端服务器以显示给用户。我说的是我可以在后端计算机上有一个php页面,它将信息发送回前端。所以再一次,我如何从一个php页面向另一个php页面发出POST请求? 问题答案: 使PHP执行POST请求的最简单方法可能是使用cURL,它

  • 我想知道如何链接到同一liferay网站中的另一个页面。 显然,我可以在我的portlet视图中硬编码url,但是我担心必须更新所有的portlet,以防友好的url在未来发生变化。 我知道我试图链接到的页面的名称,但是如果页面名称也改变了呢? 我发现了无数具有返回友好URL的方法的类,例如,,甚至,但它们都需要我不确定如何获取的参数。 是否有一个标准的方式获得友好的网址?

  • 问题内容: 我有两个包,和: 我正在为JavaDoc编写代码,并且需要提供to 。 我已经尝试了以下所有方法,但都不起作用: 我已经找到链接到以下文档的文档:(a)同一包中的类,或(b)外部URL,但另一个包中的类。 任何想法正确的语法应该是什么?谢谢! 问题答案: 在正确的语法变种 您缺少完整的软件包。下面的例子应该是正确的

  • 问题内容: 我想在HTML页面中包含HTML页面。可能吗? 我不想在PHP中做到这一点,我知道在PHP中我们可以在这种情况下使用,如何在不使用and 概念的情况下仅在HTML中实现相同的效果? 问题答案: 如果您只是试图将自己的HTML插入另一个文件中,并且认为 服务器端包含是“纯HTML”(因为它看起来像HTML注释,并且未使用PHP之类的“脏”东西) ):

  • 我正在为未来的公共API编写一个招摇过市的规范,它需要非常详细和干净的文档。是否有方法在swagger中的其他位置引用/链接/指向另一个endpoint。yml文件? 例如,这是我正在努力实现的目标: 我发现没有帮助,因为它只是用引用的内容替换自己。 斯威格能做这种事吗?

  • 我在表单模板中设置了一张表单,在a列中有数据提示,如姓名、ID#等,在B列中输入了实际数据。我创建了一个标记为“提交表单”的按钮,该按钮链接到脚本。我希望这个脚本实现的是只复制列B中特定范围的数据,然后将该数据粘贴到新工作表中的下一个空行中,以创建表单响应的某种数据库。它还将清除原始工作表B列中的数据范围。 我已经有一种方法可以清除原始工作表上的选定范围,也有一种方法可以将选定范围复制到新工作表,