質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1081閲覧

alert(),confirm()が動作しない件について

yamadaman_q

総合スコア22

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/07/29 03:01

現在GoogleAppsScriptを使用してwebアプリを作成し、動かしていたのですがGoogleChrome92からクロスオリジンでのalert(),confirm()が使用できなくなってしまい、対応策がわからず悩んでいます。

完全に独学でアプリを作成しており、同一オリジン、クロスオリジンなど概念的なものはなんとなくしかわからず自分のソースにどう反映させて良いのかがわかりません。

html

1<!--実施日--> 2<div class="form-group"> 3 <label class="control-label col-xs-2" for="input_id1">実施日</label> 4 <div class="col-xs-10"> 5 <input type="date" class="form-control" id="input_id1"> 6 <div class="help-block with-errors"></div> 7 </div> 8</div>

javascript

1/*新規登録の送信ボタンを押された時の処理*/ 2$(function(){ 3 $('#r_form1').submit(function(e){ 4 if($('#input_id1').val() == ""){ 5 alert('実施日の入力は必須です。'); 6 return false; 7 } 8 var res = confirm("情報の登録を行います。よろしいですか?"); 9 if(res == true){ 10 // ローディングアイコンを表示 11 $('.loading').css('display', 'block'); 12 // バリデーションエラーでなければ送信 13 sendData(); 14 } 15 }); 16});

昨日ここで同一オリジンにするか、HTMLのダイアログを使うのはどうかとアドバイスを受けたのですが、そもそもGASで作成したページを同一オリジンにできるのか、HTMLのダイアログを使う場合にはどうやって入力チェックやtrue,falseの判定をしてgasへ飛ばすのかがいまいち理解できず有識者の方に考え方のヒントだけでも頂ける嬉しいなと質問させて頂きました。

連日の投稿で申し訳ありませんが、もしいい案がある方がいれば教えて頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/07/29 06:54

前回の回答 (のリンク先) を読むと、iframe の問題っぽいのですが、iframe はお使いでしょうか? (GoogleAppsScript 使ったことないので、外してたらごめんなさい。)
yamadaman_q

2021/07/29 06:58

解答ありがとうございます。ifreamは使用しておりません。たった今回避策がうまくいったので、この後解決内容に記載致します。ただ基礎知識がないもので、この回避策が上策かどうかはわかりません。
guest

回答1

0

自己解決

とりあえずalert(),confirm()に関しては、bootboxを使用することで回避できました。

javascript

1$(function(){ 2 $('#r_form1').submit(function(e){ 3 if($('#input_id1').val() == ""){ 4 bootbox.alert('実施日の入力は必須です。'); 5 return false; 6 } 7 bootbox.confirm("情報の登録を行います。よろしいですか?", function (result) { 8 if (result) { 9 // ローディングアイコンを表示 10 $('.loading').css('display', 'block'); 11 // バリデーションエラーでなければ送信 12 sendData(); 13 } 14 }); 15 }); 16});

基本的なwebの仕組みの知識がない素人なので、とりあえずwindow.alertをなにかに置き換えてしまえばいいかという単純な理屈で組んだものになりますので、そもそもこの解決方法が適切かどうかが判断つきませんが、とりあえず希望通りの動作はしました。

投稿2021/07/29 07:03

yamadaman_q

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問