我正在尝试使用 GAS HtmlService 为电子表格构建 UI。下面的 HTML 是一个非常简单的表单,其中包含一个文本框,可以成功地从工作表中提取一个值(“Kristina”)。但是,当我尝试提交表单时,会在 Chrome 中打开一个新选项卡,尝试打开 URL“bffc95ee-ff64-4d2c-xxxx-19d9824eb4b4.foo.bar/?fname=Kristina”,用“xxxx”替换更多随机字母和数字(以防万一)。我在任何时候都不会在我的代码中使用“foo.bar”这个词,所以我很确定那部分不是来自我。每次或注销并重新登录后它都不会改变。我在两台不同的计算机上得到相同的结果。
<html>
<body>
<div>
<form id="formtest1">
<label>First Name</label>
<input name="fname" type="text" maxlength="255" value="<?= fname ?>"/>
<input type="submit" value="Submit"
onclick="google.script.run.processForm(document.getElementById('formtest1'));
google.script.host.close()"/>
</form>
</div>
</body>
</html>
以上内容正在使用以下函数显示:
function htmltest(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getActiveSheet();
var html = HtmlService.createTemplateFromFile("HTML");
html.fname = sht.getRange(2, 3).getValue();
ss.show(html.evaluate());
};
如果我理解正确,HTML 中的“google.script.run.processForm(...)”脚本应该触发以下函数,如项目触发器中设置的那样:
function onFormSubmit(){
Browser.msgBox("Test");
};
但它似乎没有这样做,因为表单没有关闭并且 msgBox 没有出现。只有新选项卡中的 foo bar URL。
希望我已经清楚地解释了这个问题,并且没有犯令人尴尬的错误。