我有一个Google Apps脚本,可以打开并处理现有的电子表格,并将数据写入JSON。这对我来说非常适用于Google脚本编辑器,但当我将其部署为网络应用时,我无法打开电子表格。
为了说明我创建了这个简单的测试版本:
脚本和HTML文件保存在一个Google App脚本项目中。
我"发布>部署为Web应用程序"使用"执行应用程序:我,"并给予必要的许可。
当我"测试网络应用程序以获取最新代码"我显示了HTML表单。当我点击" OK"在表单上,我会在打开电子表格之前看到第一个警告""
但在打开电子表格后,我从未看到第二个警告""在尝试打开电子表格时,该页面会重定向到空白userCodeAppPanel网址,不再继续使用。
我猜测它与身份验证有关???任何线索都非常感激!
执行Google应用脚本:
function doGet() {
return HtmlService.createHtmlOutputFromFile("opensheet.html")
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

HTML表单:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function getData() {
var sheetFileId = "1feVgACmd5_g9II2ll_1u7AVt8jIVg2LbKp13k8UQw6w";
alert("before opening spreadsheet");
var sheetFile = SpreadsheetApp.openById(sheetFileId);
alert("after opening spreadsheet");
}
</script>
</head>
<body>
<p>Update web app from spreadsheet?</p>
<form onsubmit='getData()'>
<input type='submit' value='Go'>
</form>
</body>
</html>
&#13;
答案 0 :(得分:0)
您可以使用window.open()
方法在新窗口中打开电子表格。需要更改提交按钮,以便在单击按钮后不会在Web应用程序中显示空白屏幕。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function getData() {
alert("before opening spreadsheet");
window.open("https://docs.google.com/spreadsheets/d/1feVgACmd5_g9II2ll_1u7AVt8jIVg2LbKp13k8UQw6w/edit#gid=0","_blank");
alert("after opening spreadsheet");
}
</script>
</head>
<body>
<p>Update web app from spreadsheet?</p>
<form>
<input type='button' onmouseup="getData()" value='Go'>
</form>
</body>
</html>