※追記(2021-09-02)本記事の内容は、昨日(2021-09-10)から使えなくなりました。ChromeのCORS対策のようです。詳細はコメント欄を参照ください。代替案はわかりません。スミマセン。
GAS(Google Apps Script)でWebアプリを作るとき、SUBMITしたらホームページに戻るようにしたい。
ぼくは同じHTMLを、部分的に<DIV>タグを使ってhidden属性を有効化/無効化して、擬似的に複数のページに見せている。
SUBMITを行ったら、URLパラメーターを使ってdoget()関数で取得して操作(スプレッドシートの更新など)を行う。
これまではSUBMITの飛び先を(擬似的な)ホームページにしていたのだが、そうするとアドレスバーにURLパラメーターが丸見えなので、ENTERやF5を押すとまた更新動作が走るという問題があった。
そこで、URLパラメーターをクリアするために、(擬似的な)ホームページにリダイレクトしたいと思った。
いわゆる<META>タグにrefreshを使うと、コンピューターが困った顔みたいなアイコンが出て「Connection Refused」と言われる。
JavaScriptを使ってリダイレクトしても同じ現象が起こる。
いろいろググって試行錯誤の末、このやり方ならうまくいった。
function doGet() {
return HtmlService.createHtmlOutput(
"<script>window.top.location.href='https://開発中のWEBアプリ';</script>"
);
}
原理はよく分からない。
相変わらずひどくてスミマセン。
参考:
https://stackoverflow.com/questions/11315521/automatically-redirecting-to-a-page
(この後おわり)