このようにテキストエリアを3つ作成するコードの例です
コード.gs
function doGet(){ return HtmlService.createHtmlOutputFromFile('index'); } |
意訳この処理は以下を実行する 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html> <html> <body> <div id="main_div"> </div> </body> <script> create_ta(); function create_ta() { var main_div = document.getElementById('main_div'); for (var i = 0; i < 3; i++) { var ta = document.createElement('textarea'); var id = "ta_" + i; ta.innerHTML = "textarea" + i; ta.setAttribute("id", id); ta.setAttribute("name", i); main_div.appendChild(ta); } } </script> </html> |
意訳これはHTML5文書です divを置く(idはmain_div) create_ta()を実行する この処理は以下の処理を実行する idがmain_divの要素を取得する 以下の処理を3回繰り返す textareaを作成する idを決める textareaの中に入力する文字を設定する idを設定して nameを設定して main_divに追加する |
index.htmlにある
for (var i = 0; i < 3; i++) {
の 3 を別の数値変えると作成されるテキストエリアの数が変わります
補足
appendChildではなくinsertAdjacentHTMLを使っても同じことができるようなのでついでに試したコードも残しておきます
.outerHTML を使って
ta = ta.outerHTML;
として
taの中身を↓このようにしてから
<textarea id="ta_0" class="ta" name="0">textarea0</textarea>
insertAdjacentHTMLに渡します
中身を確認するためにconsole.log(ta);も入れておきます
index.html
<html> <body> <div id="main"> </div> </body> <script> create_ta(); function create_ta() { var main = document.getElementById('main'); for (var i = 0; i < 3; i++) { var ta = document.createElement('textarea'); var id = "ta_" + i; ta.innerHTML = "textarea" + i; ta.setAttribute("id", id); ta.setAttribute("class", "ta"); ta.setAttribute("name", i); ta = ta.outerHTML; console.log(ta); main.insertAdjacentHTML('beforebegin', ta); } } </script> </html> |
ウェブアプリケーションとして導入してページを開くと
デベロッパーツールのConsoleにta.outerHTML の中身が表示されます
関連記事
ウェブアプリケーションとして導入する方法がわからない場合
↓この記事にまとめました
Google Apps ScriptのWebアプリ雛形
参考
HTML Service: Create and Serve HTML
https://developers.google.com/apps-script/guides/html/