GAS HtmlService を使用してスプレッドシートの UI を構築しようとしています。以下の HTML は、シートから値 ("Kristina") を正常に取得する単一のテキスト ボックスを備えた非常に単純なフォームです。ただし、フォームを送信しようとすると、Chrome で新しいタブが開き、「bffc95ee-ff64-4d2c-xxxx-19d9824eb4b4.foo.bar/?fname=Kristina」という URL を開こうとし、さらにランダムな文字を「xxxx」に置き換えます。と数字(念のため)。コードで「foo.bar」という単語を使用したことは一度もありません。毎回、またはログアウトしてから再度ログインしても変化しません。2 台の異なるコンピューターで同じ結果が得られます。
<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 のみ。
問題を明確に説明し、恥ずかしい間違いを犯していないことを願っています。