0

我正在尝试将一个从 HTML 模板创建的自定义对话框添加到工作表中,但我所做的没有任何结果,但出现以下错误:“我们很抱歉,发生了服务器错误。请稍等,然后重试。”

为了消除我的所有错误机会,或者与我已经编写的任何内容发生冲突,我搁置了我的项目,并从一个空白的电子表格重新开始。除了 Google 在https://developers.google.com/apps-script/guides/html/templates推荐的代码之外,我什么都没有添加

function doGet() {
  return HtmlService
  .createTemplateFromFile('Index')
  .evaluate();
}


<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello, World! The time is <?= new Date() ?>.
  </body>
</html>

我仍然收到错误消息。除了一个非常简单的自定义菜单使您能够调用此函数之外,我的代码中除了此函数和从 Google Developers 复制和粘贴的 HTML 之外,没有其他任何东西。我已经尝试了该页面上的其他一些示例,但无论我尝试什么功能,结果都是同样神秘的错误消息。

这是谷歌表;看看您是否可以使该功能“Do Get”工作: https ://docs.google.com/spreadsheets/d/1RpbYryy0El80oj-07Q21cbtRr8gPDCjrwPbHbBF4Zr0/edit#gid=0

4

1 回答 1

1

要显示自定义对话框,您不能直接返回 html 内容。

您需要使用方法showModalDialog(userInterface, title)

样本:

function onOpen() {
  customMenu();
}

function customMenu () {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('')
  .addItem('Dialog','showDialog')
  .addToUi();
}


function showDialog() {
  var dialog = doGet();
  SpreadsheetApp.getUi().showModalDialog(dialog, 'This is the dialog version of the WebApp');
}

function doGet() {
  return HtmlService
  .createTemplateFromFile('Index')
  .evaluate();
}




于 2021-09-23T09:44:42.530 回答