我一直在查看此处发布的各种其他解决方案,但它们似乎都不适合我。
我试图将一个变量从我的谷歌脚本(最初存储在谷歌的 PropertiesService 中)传递给我的 html,因为我想使用以前保存的数据作为我的文本输入框的值(显示以前保存的数据)。
这是我的 gs 文件(减去不相关的部分):
function openSettings() {
var htmlTemplate = HtmlService.createTemplateFromFile('settingsForm')
var userProperties = PropertiesService.getUserProperties();
var time = userProperties.getProperty('selectedTime');
htmlTemplate.timehtml = time;
var html = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('Settings')
.setWidth(300)
SpreadsheetApp.getUi()
.showSidebar(html);
return html
}
function processForm(form) {
var userProperties = PropertiesService.getUserProperties();
var time = userProperties.getProperty('selectedTime');
time = form.time;
userProperties.setProperty('selectedTime', time);
}
这是我的 html 文件(省略了其他不相关的部分):
<!DOCTYPE html>
<html>
<div>
<form>
<input type="text" name="time" id="time" style="width: 40px;">
<br><br><input type="button" class="action" onClick="writeFormData();
alert('submitted')" value="Submit"/>
</form>
</div>
<script>
var timeInput = document.getElementById("time");
var timehtml = time;
timeInput.value = timehtml;
</script>
<script type="text/javascript">
function writeFormData() {
google.script.run.processForm(document.forms[0]);
}
</script>
</html>
也许我的整个方法都是错误的。但我想要做的是在 Google 的 PropertiesService 中存储用户选择(可能想要将 userProperties 更改为 documentProperties,以使设置文档特定),然后在侧边栏中按下提交按钮时保存这些值。下次打开侧边栏时,应显示这些保存的设置。