我有一个使用文件选择器的脚本,但我需要传递一个名为userId的特定参数,并在调用脚本中保存为全局变量.由于调用是异步的,似乎我无法访问此参数.是否可以从html文件中访问参数或将此参数传递给html?
我可能会混合模板化的html和非模板化的(例如https://developers.google.com/apps-script/guides/html/templates和https://developers.google.com/apps-script/guides/html/)但我需要解决这个问题.
感谢任何帮助.
这是调用代码(通过电子表格中的菜单项启动):
function syncStudentsFile(userId, ss) {
scriptUser_(userId); // save userId
Logger.log('SRSConnect : syncStudentsFile : userId:'+userId); // userId is correct here
var ss = SpreadsheetApp.getActiveSpreadsheet();
var html = HtmlService.createHtmlOutputFromFile('PickerSync.html')
.setWidth(600).setHeight(425);
SpreadsheetApp.getUi().showModalDialog(html, 'Select a file');
}
function scriptUser_(userId) {
if (userId !== undefined)
sUserId = userId; // Global variable
try { return sUserId; } catch (e) { return undefined; }
}
function getOAuthToken() { // used by Picker
DriveApp.getRootFolder();
return ScriptApp.getOAuthToken();
}
Run Code Online (Sandbox Code Playgroud)
这是html选择器文件:
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons.css"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google Script中开发的自定义函数来验证电子表格中的值.

但是我收到了回复:有一个问题"输入一个满足公式的值:= validateContent()"
函数本身根本没有被调用.
我是否通过自定义功能将Google电子表格验证推得太远?
我期待我的函数返回true或false,它是如何工作的?
function validateContent() {
var val = SpreadsheetApp.getActiveSpreadsheet().getActiveCell().getValue();
if (val == value) return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)