Я просматривал различные другие решения, опубликованные здесь, но ни одно из них, похоже, не работает для меня.
Я пытаюсь передать переменную из моего скрипта Google (которая изначально хранится в Google 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>
Возможно, весь мой подход неверен.Но то, что я пытаюсь сделать, - это сохранить пользовательский выбор (может потребоваться изменить userProperties на documentProperties, чтобы сделать документ настроек специфичным) в Google PropertiesService, а затем сохранить эти значения, когда кнопки отправки нажимаются на боковой панели.В следующий раз, когда откроется боковая панель, эти сохраненные настройки должны быть показаны.