フォーム送信後の画面遷移に関する問題で、doPost関数の戻り値に不要な値を指定する必要がある理由を知りたい。
doPost関数の戻り値に不要な値を指定しなければならない状況が発生しています。4つの異なるアプローチは期待通りに動作しませんでした。
- doPost関数が存在しない場合:「スクリプト関数が見つかりません: doPost」
- return;やlet i= 1;のような戻り値を指定した場合:「スクリプトが完了しましたが、何も返されませんでした。」
- return 1; のような値を戻り値として指定した場合:「スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。」。
- HtmlTemplateオブジェクトを戻り値として指定した場合:doGet関数の戻り値を優先することで画面遷移処理を実現します。
function doGet(e) { const page = e.parameter['page']; if (page) { return HtmlService.createTemplateFromFile(page).evaluate(); } return HtmlService.createTemplateFromFile('defaultPage').evaluate(); }
<!-- defaultPage.html --> <form action='' method='post'> <button type='submit' formaction='https://~/dev'>Default Page</button> <button type='submit' formaction='https://~/dev?page=banana'>Banana Page</button> </form>
追記
<base target="_top">タグを追加することで、doPost関数の戻り値を利用した画面遷移処理を実装することができました。回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/07 04:46
2021/09/07 23:27
2021/09/08 00:11
2021/09/08 02:23
2021/09/10 05:37
2021/09/10 07:48