我不确定我想做的事情是否可行。
我正在尝试将google表单放入google doc的侧边栏。
现在我有一个应用程序脚本文档插件可以打开侧边栏,我可以使用var form = FormApp.openById('form_id');
但是我不知道如何从表单元素中获取html对象或blob,我可以使用它来将表单嵌入侧边栏。
我也不能使用iframe,因为不允许使用iframe。
答案 0 :(得分:2)
虽然您可以在电子表格/文档的侧边栏中显示Google表单(请参阅下面的示例代码),但有一个重要问题:表单不起作用,即您无法提交表单。不确定为什么,但我猜这是由于沙箱限制和/或caja消毒。
我建议您使用HTML和HTML Service(或UI Service)对自己的表单进行编码,并在侧栏中显示。如果您需要表单来保存对电子表格的回复,您也可以轻松地做到这一点。 See this for more on info and code samples of using forms in HTML Service和this for using forms in UI Service。您的服务器端脚本可以打开电子表格并向其写入表单值,如果这是您需要做的事情。
用于在Google表格的侧边栏中显示Google表单的加载项示例代码:
注意:表单实际上不起作用 - 在侧边栏中显示时不会提交!
function showFormInSidebar() {
var form = FormApp.openById('YOUR-FORM-ID-HERE');
var formContent = UrlFetchApp.fetch(form.getPublishedUrl()).getContentText();
var ui = HtmlService.createHtmlOutput(formContent).setTitle("Google Form in Sidebar Example");
SpreadsheetApp.getUi().showSidebar(ui);
};
function onOpen(e) {
// Add this add-on to Add-ons menu
SpreadsheetApp.getUi().createAddonMenu()
.addItem('Show form', 'showFormInSidebar')
.addToUi();
};