我一直在尽我所能地研究示例代码,并且我有一个插件,当您单击自定义菜单时,它会弹出一个基于 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/