GASで作成したHTMLアプリケーションで、突然Alertが動作しなくなる


対象

・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 件のコメント :

コメントを投稿