我正在尝试设置一个脚本,该脚本将为我提供一个带有 6 个复选框的弹出窗口,以便我可以选择要合并到数组中的域,该数组将在另一个脚本中用于迭代。 我设置了脚本和 HTML 页面,但 HTML 似乎没有运行其中的脚本。它给出了弹出窗口,但没有任何结果。 没有显示错误,但也没有记录任何内容。
这是剧本
function showDomainSelectionDialog() {
var htmlOutput = HtmlService
.createHtmlOutputFromFile('PageSelectionDialog')
.setWidth(300)
.setHeight(150);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Select Domains');
Utilities.sleep(5000);
}
function processSelectedDomains(selectedDomains) {
// Process the selected domains here
Logger.log(selectedDomains);
}
function doGet() {
return HtmlService.createHtmlOutputFromFile('PageSelectionDialog');
}
这是 HTML
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
body {
font-family: 'Arial', sans-serif;
margin: 10px;
}
<body>
</style>
<form>
<div class="column">
<label><input type="checkbox" name="domain" value="UK"> UK</label>
<label><input type="checkbox" name="domain" value="DE"> DE</label>
<label><input type="checkbox" name="domain" value="FR"> FR</label>
</div>
<div class="button-container">
<input type="button" value="OK" onclick="submitForm()">
</div>
</form>
<script>
function submitForm() {
var selectedDomains = [];
var checkboxes = document.getElementsByName('domain');
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
selectedDomains.push(checkboxes[i].value);
}
}
google.script.run.withSuccessHandler(function(result) {
console.log(result);
}).processSelectedDomains(selectedDomains);
// Close the dialog
google.script.host.close();
}
</script>
</body>
</html>
它对我来说是这样工作的:
<!DOCTYPE html>
<html lang="en">
<head>
<base target="_top">
<style>
body {
font-family: 'Arial', sans-serif;
margin: 10px;
}
</style>
</head>
<body>
<form>
<div class="column">
<label><input type="checkbox" name="domain" value="UK"> UK</label>
<label><input type="checkbox" name="domain" value="DE"> DE</label>
<label><input type="checkbox" name="domain" value="FR"> FR</label>
</div>
<div class="button-container">
<input type="button" value="OK" onclick="submitForm()">
</div>
</form>
<script>
function submitForm() {
var selectedDomains = [];
var checkboxes = document.getElementsByName('domain');
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
selectedDomains.push(checkboxes[i].value);
}
}
google.script.run.withSuccessHandler(function(result) {
console.log(result);
}).processSelectedDomains(selectedDomains);
// Close the dialog
google.script.host.close();
}
</script>
</body>
</html>