対象
・GASで作成したHTMLアプリケーション
・フロントは、Bootstrapをベースに装飾、Vue.jsで動作制御
現象
特に修正もなにも行ってないのに、顧客から動作異常と連絡が入る。途中で簡易なメッセージをだすのに、arert命令を使用している部分がエラーでこけてるため以下の処理がながれていない。
調査
どうもクロスオリジンの制約にarertの命令が引っかかているもよう。
でとりあえずそのあたりをぐぐると、早速先駆者がみつかりました。
ありがたや。
詳細は上記ブログ内容をみていただければいいですが
どうもGASの仕様変更等ではなく、Chromeの92へのバージョンアップの際
クロスオリジンでもiframe内でもalert()、confirm()等のダイアログ系の命令が使用できなくなったらしい。
今時irameを使ってるようなケースも少ないとおもうので通常のWebアプリならそんなに気にならないところなんですが、GASのHTMLアプリケーションの場合、画面のソースを見れもらえればわかりますが、内部的にiframeを使用してます。
なんで、こけてたみたいなんですねー。
解決
根本的解決は、
1.自前のダイアログを用意する。
とりあえず的解決としては
1.FireFox等、Chromeium 系以外のブラウザーを使用する。
2.Chrome起動時、プションを付けて起動
等があるようですが
わざわざ作成するのも、顧客に伝えるのもどれも面倒なので
そこまでalertが必要な部分でないので、少し動作かえてalertを不要な形式に修正して
難を逃れました。
Googleってこういうことするとこあるよなー。
GASでウェブアプリ作ってるなら、結構使ってる人多いと思うんだけど・・

0 件のコメント :
コメントを投稿