嗨,我正在尝试使用HTML和Google Script获取下拉列表。这些选项应该取自谷歌电子表格。我的代码导致错误:;出现错误!ReferenceError:未定义文档"我应该改进什么?怎么做?抱歉代码太乱了。我不是程序员。
code.gs
function getDropDownContent() {
var sheet = SpreadsheetApp.openById('XYZ').getSheetByName('MAG');
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("J2:J" + lastRow);
var options = new Array()
var select = document.getElementById("NUMREJ");
var data = myRange.getValues();
for(var i = 0; i < lastRow; i++) {
options.push(data[i]);
}
return options;
};
HTML代码
<html>
<head>
<base target="_top">
<script>
function addList() {
console.log('addList ran!');
google.script.run
.withFailureHandler(onFailure)
.withSuccessHandler(injectMyContent)
.getDropDownContent();
};
window.injectMyContent = function(argReturnedData) {
for(var i = 0; i < argReturnedData.length; i++) {
var opt = argReturnedData[i];
var el = document.createElement("option");
var el = document
el.text = opt;
el.value = opt;
select.appendChild(el);
};
};
window.onFailure = function(err) {
alert('There was an error! ' + err.message);
};
</script>
</head>
<body onload = "addList()">
<select id="NUMREJ">
< option > Choose a option < /option>
</select>
</body>
</html>
您的getElementById((仅为客户端:
您没有权限访问脚本编辑器中的服务器端dom。
function getDropDownContent() {
var sheet = SpreadsheetApp.openById('XYZ').getSheetByName('MAG');// server side only except in scriptlets
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("J2:J" + lastRow);
var options = new Array()
var select = document.getElementById("NUMREJ");//client side code only
var data = myRange.getValues();
for(var i = 0; i < lastRow; i++) {
options.push(data[i]);
}
return options;
};
您可以使用模板化html中的scriptlet来实现这一点。