Google apps script 在同一文档中使用另一脚本中的变量(应用程序脚本)
我试图从脚本B.gs中的另一个脚本a.gs访问变量。它们都在同一份文件中。我怎么能这样做 我不知道该如何解决这个问题,我是一个应用程序脚本的初学者,在互联网上找不到关于它的任何东西Google apps script 在同一文档中使用另一脚本中的变量(应用程序脚本),google-apps-script,global-variables,Google Apps Script,Global Variables,我试图从脚本B.gs中的另一个脚本a.gs访问变量。它们都在同一份文件中。我怎么能这样做 我不知道该如何解决这个问题,我是一个应用程序脚本的初学者,在互联网上找不到关于它的任何东西 code.gs: ui = DocumentApp.getUi(); function onOpen () { A = prompt('Hello'); } code2.gs: function onOpen () { if (A === "123") { ui.alert('He
code.gs:
ui = DocumentApp.getUi();
function onOpen () {
A = prompt('Hello');
}
code2.gs:
function onOpen () {
if (A === "123") {
ui.alert('Hello')
}
}
如果在提示符中输入了123
,我希望输出Hello
,但是当我尝试运行代码时,我得到了错误:
ReferenceError:未定义“A”。(第3行,文件“代码2”)
- 在您的情况下,
和code.gs
位于一个Google文档的容器绑定脚本类型的项目中code2.gs
code.gs
和code2.gs
的脚本用作一个项目。因此,在脚本中,项目中有两个相同的函数onOpen()
。在这种情况下,只运行其中一个。在您的情况下,将运行code2.gs的onOpen()
,并且ReferenceError的错误未定义。
发生
修改脚本:
如果您想修改脚本,并且希望在打开Google文档时使用这些功能,那么下面的修改如何
1.将以下脚本复制并粘贴到脚本编辑器的code.gs
和code2.gs
:
代码G.gs:
代码2.gs:
或者,如果您想独立运行两个函数,那么下面的修改如何?在此修改中,使用PropertiesService保存该值
代码G.gs:
代码2.gs:
或者,您也可以按如下方式进行修改。但是,在您的情况下,这可能不是必需的
function installedOnOpen () {
var ui = DocumentApp.getUi();
var A = ui.prompt('Hello').getResponseText();
if (A === "123") {
ui.alert('Hello');
}
}
2.安装OnOpen事件触发器:
为了在打开Google文档时运行installedOnOpen的功能
3.运行脚本:
在您的例子中,有两种运行脚本的模式
模式1:
打开谷歌文档
模式2:
在脚本编辑器中运行installedOnOpen
如上所述,installedOnOpen
正在运行。你可以在谷歌文档中看到这个对话框
注:
- 此修改假定
prompt()
函数将123
的值作为字符串值返回。
- 如果您不能提供
prompt()
的脚本,作为测试用例,如何从prompt('Hello')进行修改
toui.prompt('Hello').getResponseText()代码>
参考资料:
-
- 我还认为这条线索可能对你有用
如果我误解了你的问题,而这不是你想要的方向,我道歉。我可以看到你定义了onOpen
两次。这没有道理
您也不声明变量,这反映在代码的样式中。尝试声明变量,您会发现您的代码无效。谢谢您的建议!在发布这个问题几个小时后,我意识到我可以做到这一点,它成功了。谢谢你的回答和测试。我很高兴你的问题解决了。
function sample (A) {
if (A === "123") {
ui.alert('Hello')
}
}
var ui = DocumentApp.getUi();
function installedOnOpen () {
A = prompt('Hello'); // or ui.prompt('Hello').getResponseText();
PropertiesService.getScriptProperties().setProperty("key", A);
}
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');
}
}