Html Iframe沙盒模式脚本不工作
我试图从Html Iframe沙盒模式脚本不工作,html,iframe,google-apps-script,Html,Iframe,Google Apps Script,我试图从native模式切换到iframe,但当我单击按钮时,HTML文件的部分显示为空白页。我无法在开发人员控制台上看到错误 这是index.html: 106海港 费夏德安格鲁: 费查·德萨利达: 坎蒂达德·德·韦斯佩德斯: (Navegadores soportados:Chrome、Android、Safari) $(document).ready(function(){//实现这一点最安全的方法是使用jQuery ready方法,该方法将在页面开始执行JavaScript之前
native
模式切换到iframe
,但当我单击按钮时,HTML文件的
部分显示为空白页。我无法在开发人员控制台上看到错误
这是index.html
:
106海港
费夏德安格鲁:
费查·德萨利达:
坎蒂达德·德·韦斯佩德斯:
(Navegadores soportados:Chrome、Android、Safari)
$(document).ready(function(){//实现这一点最安全的方法是使用jQuery ready方法,该方法将在页面开始执行JavaScript之前监视页面是否已完全加载。
$(“#email_subscribe”).submit(函数(){//function submit incorporada en la biblioteca jquery
//leyenda e imagen de espera antes del la Function handler al后端:
$(“#表单内容”).append('PROCESANDO…'+'
'/*esta imagen debe estar en https tambien*/);
google.script.run.withSuccessHandler(函数(ret){//ejecuto函数que necesta un返回值
$(“谢谢你”).show(“慢”)//aparece con estilo
//无DeParece mas:$(“#email_subscribe”).slideUp();//DeParece deslizandoce
$(“#表单内容”).html('Processing….');
$(“#表单内容”).html(ret);
//$(“#表单内容”).load(ret)
控制台日志(ret);
}).CalcSp106(this)//real Calc109(this)prueba showhtmltext();//这是另一个表单元素//函数que esta en el服务器端(code.gs)
});
});
使用SandboxMode.IFRAME
,您应该使用单击处理程序通过提交按钮调用服务器端处理程序,而不是submit
操作
与此相反:
<input type="submit" value="enviar">
^^^^^^^^^^^^^
Index.html
现在按钮上绑定了一个click()
处理程序,而不是表单。因此,按钮有自己的ID,button submit
。我已经删除了与问题无关的额外代码和注释
因为我使用了这个示例,所以我还更改了模板HTML的行,以加载默认的“样式表”
<!DOCTYPE html>
<html>
<!-- PRUEBA CON EL IFRAME SANDBOX MODE -->
<body>
<div>
<h3 style=color:blue>Seaport 106</h3>
<form id="email_subscribe">
Fecha de Ingreso:
<input type="date" name="dayIn" min="2015-12-01" max="2016-03-25"/>
<br>
<br> Fecha de Salida:
<input type="date" name="dayOut" min="2015-12-08" max="2016-04-01"/>
<br>
<br> Cantidad de Huespedes:
<input type="number" name="guests" min="1" max="4"/>
<input id="button-submit" type="button" value="enviar"/>
</form>
<span id="thank_you" hidden="true"></span> (Navegadores soportados: Chrome, Android, Safari)
</div>
<div id="form-content">
</div>
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$("#button-submit").click(function() {
$("#form-content").append(' PROCESANDO...' + '<br></br>' );
google.script.run
.withSuccessHandler(function(ret) {
$( "#form-content" ).html(ret);
console.log(ret);
})
.CalcSp106(this.parentNode)
});
});
</script>
</body>
</html>
106海港
费夏德安格鲁:
费查·德萨利达:
坎蒂达德·德·韦斯佩德斯:
(Navegadores soportados:Chrome、Android、Safari)
$(文档).ready(函数(){
$(“#按钮提交”)。单击(函数(){
$(“#表单内容”).append('PROCESANDO…'+'
');
google.script.run
.withSuccessHandler(函数(ret){
$(“#表单内容”).html(ret);
控制台日志(ret);
})
.CalcSp106(此.parentNode)
});
});
谢谢你,莫格斯达,我马上就去试试。
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index');
// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle('Web App Window Title')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function CalcSp106( form ) {
// Echo back the received object
return( JSON.stringify(form) );
}
<!DOCTYPE html>
<html>
<!-- PRUEBA CON EL IFRAME SANDBOX MODE -->
<body>
<div>
<h3 style=color:blue>Seaport 106</h3>
<form id="email_subscribe">
Fecha de Ingreso:
<input type="date" name="dayIn" min="2015-12-01" max="2016-03-25"/>
<br>
<br> Fecha de Salida:
<input type="date" name="dayOut" min="2015-12-08" max="2016-04-01"/>
<br>
<br> Cantidad de Huespedes:
<input type="number" name="guests" min="1" max="4"/>
<input id="button-submit" type="button" value="enviar"/>
</form>
<span id="thank_you" hidden="true"></span> (Navegadores soportados: Chrome, Android, Safari)
</div>
<div id="form-content">
</div>
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$("#button-submit").click(function() {
$("#form-content").append(' PROCESANDO...' + '<br></br>' );
google.script.run
.withSuccessHandler(function(ret) {
$( "#form-content" ).html(ret);
console.log(ret);
})
.CalcSp106(this.parentNode)
});
});
</script>
</body>
</html>