如何插入.html文件从谷歌应用程序脚本HTMLService类获取模板? [英] How to insert into .html file the template obtained from google app script HTMLService class?

查看:202
本文介绍了如何插入.html文件从谷歌应用程序脚本HTMLService类获取模板?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个按钮,我想通过HtmlService.createTemplateFromFile('HTML_file')方法将其替换为通过Google应用程序脚本加载的其他HTML对象。



按钮onclick函数是在.html文件中的javascript中写入的:

 < div id =add_form_button_wraper> 
< input type =buttonid =add_formonclick =addForm()value =Add Form>
< / div>
< script>
函数addForm(){
innerHTML = google.script.run.getForm(some_args);
document.getElementById(add_form_button_wraper)。innerHTML =
innerHTML;
}
< / script>

Code.gs代码如下所示:

  getForm(arg1,arg2){
//从html文件创建HTML模板。
var template = HtmlService.createTemplateFromFile(HTML_TEMPLATE);
template.arg1 = arg1;
template.arg2 = arg2;
返回template.evaluate()。getContent();
}

单击该按钮后,div的内容将更改为undefined。我也尝试了同样的效果HTMLService.createTemplateFromFile()。getCode()。

如何将从HTML应用程序脚本获取的原始html代码插入div中? div>

一个简单的Web应用程序示例



以下是我如何执行对话和Web应用程序。我知道这并不一定与你的具体情况有关,但希望一个可行的例子可以给你一些关于如何继续进行的想法。



这是一个简单的例子一个标准的Web应用程序表单您可以将其视为对话框或将其作为Web应用程序运行。它将所有的回复存储在表格中。



Code.gs:

 <$ c 

$ b SpreadsheetApp.getUi()。createMenu('My Tools')
.addItem('Display Dialog','displayDialog')
。 addToUi();
}

函数doGet()
{
var output = HtmlService.createHtmlOutputFromFile('CyclingSurvey');
返回output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);


循环Survey.gs:

函数storeCyclingSurveyResults(rA)
{
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName('CyclingSurvey');
var ts = Utilities.formatDate(new Date(),Session.getScriptTimeZone(),MM / dd / yyyy HH:mm:ss);
rA.splice(0,0,ts);
sh.appendRow(rA);
返回true;


function displayDialog()
{
var html = HtmlService.createHtmlOutputFromFile('CyclingSurvey')。setWidth(800).setHeight(500);
SpreadsheetApp.getUi()。showModelessDialog(html,'Cycling Survey');
}

循环Survey.html:

 <!DOCTYPE html> 
< html>
< head>
< script src =// ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\"> ;</script>
< script>
函数recordData()
{
var q1 = $('#q1')。val();
var q2 = $('input [name =prefer]:checked')。val();
var checked = [];
$(input [name ='own']:checked)。each(function(){checked.push($(this).val());});
var q3 = checked.join(',');
var q4 = $('#q4')。val();
var rA = [];
rA.push(q1);
rA.push(q2);
rA.push(q3);
rA.push(q4);
google.script.run
.withSuccessHandler(setResponse)
.storeCyclingSurveyResults(rA);
}
函数setResponse()
{
$('#reply')。css('display','inline');
$('#collect')。css('display','none');
}
console.log('script here');
< / script>
< style>
#reply {display:none;}
#collect {display:block;}
< / style>
< / head>
< body>
< div id =reply>感谢您花时间参与我们的调查。您的结果已被记录。< / div>
< div id =collect>
< div style =font-weight:bold>你喜欢骑自行车什么?< / div>