Icy*_*ame 1 javascript google-apps-script
我想在用户按下 Google App Scripts 中的按钮时提醒他/她。以下代码为 JS 和 HTML:
<html>
<body>
<button onclick='myFunction()'> Press this </button>
</body>
</html>
<script>
function myFunction()
{
var b = document.getElementById('result');
b.innerHTML = 'You pressed the button.';
alert('The output has been modified');
return;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我将其输入到 HTML 文件中,但我无法理解如何运行它。它给了我一个仅运行该函数的选项。当我这样做时,我收到以下错误:
ReferenceError: "document" is not defined
我尝试将其部署为网络应用程序,但即使这样也不起作用。该按钮出现,但当我单击它时没有任何反应。
请告诉我如何纠正这个问题。
您可以通过阅读Html 服务 - Google Apps 脚本找到大部分答案。运行它的方式是创建一个已发布的script-as-web-app。
Html 服务是一种选择,但您也可以使用 UiApp 服务 - 请查看在 HTML 中调用 Google Apps 脚本函数,了解使用该方法的示例。
使用以下代码,您将修改名为 的元素的myFunction()content( ) 。这就是您动态更改显示页面的方式。innerHTMLresult
var b = document.getElementById('result');
b.innerHTML = 'You pressed the button.';
Run Code Online (Sandbox Code Playgroud)
问题是,你没有这样的元素。让我们添加一个,a <div>。为了使效果myFunction()真正明显,我们将从一些内容开始,但这是可选的。重要的是,我们为元素(在本例中为“结果”)提供一个 id,以匹配函数中已有的 id。
<div id="result">You haven't pressed the button yet.</div>
Run Code Online (Sandbox Code Playgroud)
这是最终的代码。除了“结果”更改之外,该<script>块还移动到<html>标签内,并且将 id 添加到按钮中,以便在单击后将其禁用。如屏幕截图所示,编辑器中将有两个文件。

没什么太多的,它与创建 HTML 文件中描述的完全一样
function doGet() {
return HtmlService.createHtmlOutputFromFile('myPage');
}
Run Code Online (Sandbox Code Playgroud)
再次,从Html Service 的示例开始。请注意, .createHtmlOutputFromFile('myPage')中doGet()包含脚本中 html 文件的名称。(如果每次因为剪切和粘贴而搞砸了我都能得到一美元,那么我就会得到两美元。)
<html>
<script>
function myFunction() {
var b = document.getElementById('result');
b.innerHTML = 'You pressed the button.';
document.getElementById('button1').disabled = 'disabled';
//alert('The output has been modified');
return;
}
</script>
<body>
<button onclick='myFunction()' id='button1'>Press this</button>
<div id="result">You haven't pressed the button yet.</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)