javascript - 如何在 Google Apps 插件脚本中使用外部 javascript 库?

标签 javascript google-apps-script web-applications

我一直在尽我所能地研究示例代码,并且我有一个插件,当您单击自定义菜单时,它会弹出一个基于 html 文件(HtmlService 类内容)的对话框。

function showDialog() {
  var html = HtmlService.createHtmlOutputFromFile('dialog')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setWidth(400)
      .setHeight(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, 'Need a name for this');
}

但是我似乎无法从此 html 文件加载任何外部 javascript 库。如果它们包含在 script 标记中,则不会引发任何错误,但任何在 html 文件中执行 javascript 的尝试都会失败。我知道有一个安全模型,但文档没有启发性。

这是实际的 html 文件(iframe?我在开发工具中找不到它,假设 Sheets 使用 Canvas 或类似的东西渲染所有内容)?

我相信我已经彻底阅读了文档(并链接自): https://developers.google.com/apps-script/reference/html/

...但我没有看到任何我认为与我正在尝试的内容相关的内容。

具体来说,我希望能够使用 Dracula 图形库(或者可能是另一个类似的库)来实现一种新型图表。我需要能够执行该库中包含的方法。

最佳答案

load external javascript ,你必须使用 scriplets在模板化 HTML 中(部分取自 GAS 文档)

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <?!= include('StylesheetFileName'); ?>
  </head>
  <body>
    <h1>Welcome</h1>
    <p>Please enjoy this helpful script.</p>
    <?!= include('JavaScriptFileName'); ?>
  </body>
</html>

在你的 gs 代码中你会有这样的东西

function showDialog() {
var html = HtmlService.createTemplateFromFile('dialog')
            .evaluate()
            .setSandboxMode(HtmlService.SandboxMode.IFRAME)
            .setWidth(400)
            .setHeight(300);
        SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
        .showModalDialog(html, 'Dialog Title');
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

关于javascript - 如何在 Google Apps 插件脚本中使用外部 javascript 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766876/

相关文章:

web-applications - 原型(prototype) Web 应用程序框架

Azure Service Fabric 资源管理器中的 Java Web 应用程序部署

php - AJAX 加载后没有发生 jQuery 事件?

javascript - 函数未使用定义的变量执行

google-apps-script - 如何使用 UrlFetchApp 为 BigQuery Rest API 添加媒体上传?

google-apps-script - 使用 Google 电子表格查询语言获取行号

java - 我如何分析一个非常大的 Java webapp?

javascript - 如何将 JSON 字符串附加到 HTML 预标记?

javascript - 加载 asset javascripts 下的所有 javascripts 好不好

JavaScript:使用 Array 方法编写多个函数