Когда вы вызываете google.script.run
в клиентской среде, вы запрашиваете выполнение функции скрипта Apps на стороне сервера.
Ваша реализация loadClient()
не имеет смысла в контекстеВыполнение скрипта приложения на стороне сервера.
Вот полный и простой пример успешного запуска вызова Logger.log()
на стороне сервера с помощью нажатия кнопки на стороне клиента:
client.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<script>
function registerListener() {
document.getElementById('callServerFunction').addEventListener('click', function() {
google.script.run
.withSuccessHandler(function() {
alert("Successfully called server function.");
})
.withFailureHandler(function() {
alert("Failed to call server function.");
})
.serverFunction();
});
}
</script>
<body onload="registerListener()">
<button id="callServerFunction">Call Server Side Function</button>
</body>
</html>
Code.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile('client');
}
function serverFunction() {
Logger.log("Server function called.");
}
Результаты ведения журнала на стороне сервера после нажатия кнопки
[18-06-10 13:48:20:359 PDT] Server function called.
Относительно JavaScript API GoogleКлиентские библиотеки (т. Е. https://apis.google.com/js/api.js),, которые не предназначены для использования в контексте серверной части Apps Script. Весь смысл Apps Script заключается в том, что существует подробный список служб, готовых к немедленному использованию без какой-либо настройки .Помимо несовместимости, попытка загрузить JS-библиотеки на стороне клиента в контексте скрипта Apps на стороне сервера просто избыточна.
Аналогично, попытка использовать JS-версию на стороне клиентаРазмышления в клиентском коде Apps Script также не имеют особого смысла, так как у вас есть полный набор серверных функций, доступных через google.script.run
.