Я пытался использовать скрипт приложения, чтобы позволить людям заполнять электронную таблицу Google HTML-страницей.Но после того, как я ввел данные на html-странице, данные не появились в моей целевой таблице.
Нет проблем, когда я выполняю функцию на code.gs.Логи показываются нормально.И нет проблем, когда я использую оповещение для проверки скрипта на HTML.Но пока я пытался передать параметр из html в code.gs через js.Это не работа.
code.gs:
function doGet(event) {
// Logger.log(event);
return HtmlService.createHtmlOutputFromFile("page");
}
function GG(name, email, link) {
var url = "spreadsheet url";
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Data");
ws.appendRow([new Date(), name, email, link]);
Logger.log("GG function is work")
}
function WTF() {
Logger.log("WTF !!!");
}
page.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<base target="_top">
</head>
<body>
<div class="container">
<form>
<div class="form-group">
<label for="email">Name:</label>
<input type="text" class="form-control" id="username">
</div>
<br>
<div class="form-group">
<label for="email">Email:</label>
<input type="text" class="form-control" id="email">
</div>
<div class="form-group">
<label for="link">Link:</label>
<input type="url" class="form-control" id="link">
</div>
<button class="btn btn-primary" id="submit">Submit</button>
</form>
</div>
<script>
document.getElementById("submit").addEventListener("click",fn);
function lol() {
google.script.run.WTF();
}
function fn() {
var uname = document.getElementById("username").value;
var email = document.getElementById("email").value;
var link = document.getElementById("link").value;
google.script.run.GG(uname,email,link);
}
</script>
</body>
</html>
Работает нормально, когда я меняю document.getElementById("submit").addEventListener("click",fn);
на document.getElementById("submit").addEventListener("click",lol);
Журнал показывает, как ожидалось, но GG не работает.На листе не было добавлено никаких данных, как ожидалось, если я не выполню их через «Run> Run function> GG» на странице сценария приложения, в каждой ячейке для данных будет отображаться «undefined».