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

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

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

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

4630閲覧

GASのダイアログ上でのWEBアプリ実装方法

fiile

総合スコア16

Google Apps Script

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/08/05 10:54

編集2019/08/05 11:01

gasのHtmlServiceを用いてWEBアプリの作成を目指したいです。
その際通常のWEBサイトの公開メニューからではなくshowModalDialogメソッドで表示させたダイアログ上で実装したいのですが、下記のコードではURLを押下してもジャンプしません。
obj.urlはuserNameがプロパティの連想配列です。

GoogleAppsScript

1function sample(){ 2 var ui = SpreadsheetApp.getUi; 3 var html = HtmlService.createHtmlOutputFromFile('index'); 4 html.obj = something //ここでスプレッドシートのデータをオブジェクト形式で代入 5 6 ui.showModalDialog(html,'test'); 7}

index

1<body> 2 <form> 3 <input tipe="text" name="user"> 4 </form> 5 <?!= 6 "<a href='" + obj.url[user] + "'>URL</a>" 7 ?> 8</body>

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

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

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

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

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

guest

回答1

0

ベストアンサー

次のような修正案はいかがでしょうか。

修正箇所

  • var ui = SpreadsheetApp.getUi;ではgetUiは関数として使用されていません。
  • var html = HtmlService.createHtmlOutputFromFile('index');について、テンプレートを使用しているようですのでvar html = HtmlService.createTemplateFromFile('index');が適切と思われます。
  • "<a href='" + obj.url[user] + "'>URL</a>"ではuserは定義されていません。

修正したスクリプト

この修正ではGoogle Apps Script側のスクリプトのみ修正しています。

javascript

1function sample_aa(){ 2 // サンプルオブジェクト 3 var something = {url: {sample: "https://teratail.com/questions/204526"}}; 4 5 var ui = SpreadsheetApp.getUi(); // 修正 6 var html = HtmlService.createTemplateFromFile('index'); 7 html.obj = something //ここでスプレッドシートのデータをオブジェクト形式で代入 8 html.user = "sample"; // 修正: テストとしてobj.url[user]のuserをここで用意しました。 9 ui.showModalDialog(html.evaluate(), 'test'); // 修正 10}

参考

投稿2019/08/06 02:28

kisojin

総合スコア899

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

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

fiile

2019/08/26 11:30

遅れてすみません!! 助かりました!!
kisojin

2019/08/26 22:10

ご返事ありがとうございます。無事解決したとのことで安心しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問