我正在尝试从脚本B.gs中的另一个脚本A.gs访问变量。它们都在同一文档中。我该怎么办?
我不确定如何解决此问题,我是应用脚本编写的初学者,在互联网上找不到任何有关此的东西。
code.gs:
ui = DocumentApp.getUi();
function onOpen () {
A = prompt('Hello');
}
code2.gs:
function onOpen () {
if (A === "123") {
ui.alert('Hello')
}
}
如果在提示中输入Hello
,我希望输出123
,但是当我尝试运行代码时,出现错误:
ReferenceError: "A" is not defined. (line 3, file "code2")
code.gs
和code2.gs
位于Google容器绑定脚本类型的项目中。如果我的理解是正确的,那么这个答案怎么样?请认为这只是几个答案之一。
在您的脚本中,code.gs
和code2.gs
的脚本在脚本编辑器中用作一个项目。因此,在脚本中,项目中onOpen()
有2个相同的功能。在这种情况下,仅运行其中之一。在您的情况下,运行onOpen()
的code2.gs
并发生ReferenceError: "A" is not defined.
的错误。
如果您要修改脚本并且要在打开Google文档时使用这些功能,那么以下修改如何?
code.gs
和code2.gs
中:var ui = DocumentApp.getUi();
function installedOnOpen () {
A = prompt('Hello'); // or ui.prompt('Hello').getResponseText();
sample(A);
}
code2.gs:function sample (A) {
if (A === "123") {
ui.alert('Hello')
}
}
或者,如果您想独立运行两个功能,那么下面的修改如何?
code.gs:var ui = DocumentApp.getUi();
function installedOnOpen () {
A = prompt('Hello'); // or ui.prompt('Hello').getResponseText();
PropertiesService.getScriptProperties().setProperty("key", A);
}
code2.gs:function sample () {
var A = PropertiesService.getScriptProperties().getProperty("key");
if (A === "123") {
ui.alert('Hello')
}
}
或者,您也可以进行如下修改。但是,根据您的情况,可能不需要这样做。
function installedOnOpen () {
var ui = DocumentApp.getUi();
var A = ui.prompt('Hello').getResponseText();
if (A === "123") {
ui.alert('Hello');
}
}
为了在打开Google文档时运行installedOnOpen
的功能,please install the OnOpen event trigger to the funciton of installedOnOpen
as the installable trigger.
根据您的情况,有两种运行脚本的模式。
模式1:打开Google文档。
模式2:在脚本编辑器中运行installedOnOpen
。
以上,运行installedOnOpen
。您可以在Google文档中看到该对话框。
installedOnOpen
的功能返回prompt()
的值作为字符串值。123
的脚本作为测试用例,那么如何将prompt()
修改为prompt('Hello');
?ui.prompt('Hello').getResponseText();
如果我误解了你的问题,而这不是你想要的方向,我深表歉意。