【发布时间】:2014-12-31 02:59:02
【问题描述】:
请告诉我如何在谷歌应用脚本(谷歌文档)中注入外部 javascript 文件。
提前致谢。
【问题讨论】:
标签: google-apps-script google-docs google-docs-api
请告诉我如何在谷歌应用脚本(谷歌文档)中注入外部 javascript 文件。
提前致谢。
【问题讨论】:
标签: google-apps-script google-docs google-docs-api
根据您所说的 Inject 的含义,一种可能的答案是使用标准的 javascript eval() 函数和 UrlFetchApp:
eval(UrlFetchApp.fetch('http://path.to/external/javascript.js').getContentText());
如果您想在已发布脚本的 HTML 输出中包含 JS 文件,只需在 HTML 中使用标签包含 javascript。
<script src="http://path.to/external/javascript.js"></script>
评估文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval UrlfetchApp 文档:https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
【讨论】:
您希望“注入”的 Javascript 文件定期更改吗?如果没有,最简单的方法是在您的项目中创建一个新的脚本文件,并添加您要注入的文件的内容。例如,假设您从 Code.gs 开始,只有一个函数,主要基于电子表格项目模板:
/**
* Adds a custom menu to the active spreadsheet
*/
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Tell a Joke",
functionName : "beFunny"
}];
spreadsheet.addMenu("Script Center Menu", entries);
};
您看到我正在调用不在此文件中的“beFunny()”。相反,它在一个新文件中,ExtraStuff.gs:
function beFunny() {
Browser.msgBox('Waka waka waka');
}
运行此程序,Tell a Joke 菜单项将起作用,即使 Code.gs 中没有任何内容涉及另一个脚本文件的存在。相反,项目中所有文件中声明的函数和变量都在彼此的“范围内”。
【讨论】: