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

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

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

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

HTML

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

Q&A

解決済

1回答

4528閲覧

標準スクリプトレットタグの使い方がわからない

nono1234

総合スコア25

Google Apps Script

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

HTML

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

0グッド

0クリップ

投稿2017/09/06 13:38

編集2017/09/06 14:21

GASのプロジェクトをWEBアプリとして公開しようとしているのですが、標準スクリプトレットタグの使い方がよくわかりません。
例えば<body>の中に

HTML

1<script type="text/javascript"> 2function getValue(id){ 3 var elm=document.getElementById(id); 4 return elm.value; 5} 6function hoge1(){ 7} 8function hoge2(){ 9} 10</script> 11<p id="A" value="1"> A </p> 12<button onclick="<? if(?> getValue(’A’) <? =='1'){ ?> 13 hoge1()<? 14 }else{ ?> 15 hoge2()<? 16 }?>"> button</button> 17

のようにあるとするとhoge1が実行されるように思うのですが、実際には構文エラーとなってしまいます(F12を押してデバッグしているのですが構文エラーだとそもそもデバッグできないのか、どの部分が間違っているのかわかりません)

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

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

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

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

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

unau

2017/09/06 14:10

GAS で HTML ページを作る、というのは、どういう意味ですか。GAS のプロジェクトを WEB アプリとして公開する、という意味でしょうか。
unau

2017/09/06 14:10

あと、GAS の標準スクリプトレットって何ですか。
nono1234

2017/09/06 14:17

前回に引き続き質問に答えてくださってありがとうございます。一つ目の質問はその通りです。用語の使い方がおかしかったので訂正させていただきます。2つ目の質問ですが<? ?>を標準スクリプトレットタグ、<?= ?>を出力スクリプトレットタグ、<?!=?>を強制出力スクリプトレットタグというそうです。これも訂正させていただきます
unau

2017/09/06 14:20

スクリプトレットタグの名称については、私が用語を知らなかっただけです。
guest

回答1

0

ベストアンサー

スクリプトレットタグ、という用語は知りませんでしたが、<?<?= などのタグの中身が実行されるのは、サーバ側でテンプレートを evaluate したときです。まず、サーバ側でテンプレートをロードして、それを evaluate する必要があります。そして HTML がクライアントに送られます。クライアントに送られた時点で、スクリプトレットタグがない、普通の HTML になっています。

一方、getValue() 関数は JavaScript で書かれており、これはクライアントで実行されるものです。

実行されるのがサーバなのかクライアントなのか、もういちど整理して考えられるとよいと思います。


追記

上のコードではサーバ側で処理すべきものが何もありませんので、テンプレートではなく、ただの HTML にするのが正しいと思います。

js

1<script type="text/javascript"> 2function getValue(id){ 3 var elm=document.getElementById(id); 4 return elm.value; 5} 6function hoge1(){ 7} 8function hoge2(){ 9} 10function hogehoge() { 11 return (getValue(A) == '1') ? hoge1() : hoge2(); 12} 13</script> 14<p id="A" value="1"> A </p> 15<button onclick="hogehoge"> button</button>

投稿2017/09/06 14:28

編集2017/09/06 14:33
unau

総合スコア2468

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

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

nono1234

2017/09/06 14:58

何度も本当にありがとうございます. タグの中ではjavascriptは実行されず属性値の設定しかできないのを勘違いしていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問