【发布时间】:2018-07-12 12:13:52
【问题描述】:
我遇到了和这里讨论的同样的问题:How to pass a parameter to html?
换句话说,我需要将参数传递给 Picker,以便他知道我正在选择什么文件。基于此文件类型,不同的函数将作为回调的一部分运行。
我正在使用 Google 提供的 Picker 示例:https://developers.google.com/apps-script/guides/dialogs
选择器显示如下代码:
function showPicker() {
var html = HtmlService.createHtmlOutputFromFile('Picker.html')
.setWidth(600)
.setHeight(425)
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi().showModalDialog(html, 'Select a file');
}
当然,现在我想将参数传递给选择器,以便它知道我要打开的文件。根据上一篇文章中提供的示例(实际上它看起来是最好的方法),我需要以下内容:
function doGet() {
var htmlTemplate = HtmlService.createTemplateFromFile('Picker');
htmlTemplate.dataFromServerTemplate = { first: "hello", last: "world" };
var htmlOutput = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('sample');
return htmlOutput;
}
很遗憾,选择器窗口没有显示。如何解决?
任何帮助将不胜感激。
【问题讨论】:
-
你检查浏览器的控制台窗口了吗?您发现任何错误吗?
-
您的 Javascript 中发生了什么? HTML 是最简单的部分。没有必要“将参数传递给选择器”。当你构造新的 PickerBuilder 对象时,你通过调用'setCallback(callBack)'来设置回调函数。当回调函数触发时,它会接收包含有关您选择的详细信息的事件对象。只需检查回调函数中选定的数据并基于此执行其他代码。选择器不显示的原因有数百万,因此请发布您的 Javascript 代码和 console.log() 输出
-
您好,感谢您的回复。这里有代码: 1) 显示 Picker(此代码有效): function showPicker() { var html = HtmlService.createHtmlOutputFromFile('Picker.html') .setWidth(600) .setHeight(425) .setSandboxMode(HtmlService.SandboxMode .IFRAME); SpreadsheetApp.getUi().showModalDialog(html, '选择一个文件');我可以为两个不同的目的调用 Picker(菜单中有 2 个项目)。我的 code.gs 如何理解使用了 2 个项目中的哪一个?
-
请使用此符号@Hikari 回复 cmets。否则,我看不到您的 cmets 的通知。