google-apps-script - google.script.run 不运行 Code.gs 中的函数
问题描述
我正在尝试在我的工作表中创建一个带有应该运行功能的按钮的 html 框。
我已经简化了代码以隔离问题,我所做的似乎有问题。
使用以下代码,创建了 html 输出,按钮做出反应,因为警报有效,但 code.gs 中的函数没有运行。Executions 显示 htmlBox() 已完成,但没有 returnYes() 的踪迹
请问你能帮帮我吗 ?
代码.gs
function htmlBox(){
var htmlOutput = HtmlService
.createHtmlOutputFromFile("box")
.setWidth(200)
.setHeight(50);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, "Try to make work this button");
}
function returnYes(){
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var value = "yes!";
ws.getRange(1, 1).setValue(value);
}
盒子.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div>
<button id="btn">Run It!</button>
</div>
<script>
document.getElementById("btn").addEventListener("click",buttonClicked);
function buttonClicked() {
alert("Button clicked");
google.script.run.returnYes();
}
</script>
</body>
</html>
解决方案
编辑:以下代码不能解决上述问题
问题是 Code.gs 中缺少 doGet 函数。
通过添加它现在可以工作。
代码.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("box");
function htmlBox(){
var htmlOutput = HtmlService
.createHtmlOutputFromFile("box")
.setWidth(200)
.setHeight(50);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, "Try to make work this button");
}
function returnYes(){
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var value = "yes!";
ws.getRange(1, 1).setValue(value);
}
感谢@Baby_Boy 提供解决方案。
推荐阅读
- wordpress - 如何在 WordPress 中为每个类别及其子类别设置自定义页面?
- python - 如何将pymol模块嵌入python?
- java - 编译器无法读取导入的类
- php - @include sweetalert 通过 laravel 刀片
- c# - 打印按钮打不开打印对话框 win10 v.2004
- java - 从 Spring Boot 中的控制器调用时,Spring 的 @Cacheable 不起作用
- python - 尝试在 kivy python 中使用继承
- json - postgres中的嵌套聚合
- exception - 检查后在 SwiftUI 中将可选绑定设置为 nil 时出现异常
- python - 如何使用 Selenium Webdriver 提取日期