我最近才开始使用Google-Apps-Scripts。我想看看是否可以使用第三方JS库在Google-Sheet仪表板的顶部添加时间线。
我的目标是在对话框中添加时间线小部件。我设法让我的对话框显示但没有内容。我希望我想做的事情是可能的。我知道我可以创建一个网站并在其中嵌入Google Doc但是想尝试这个,只是为了好玩。
1)在打开的表格上创建对话框:
function onOpen() {
var htmlOutput =
HtmlService.createHtmlOutputFromFile('cabbages')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(1500)
.setHeight(600);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'bla');
}
2)cabbages文件显示基于库的时间轴:
<div>
<script>
function getContent(css, js) {
return HtmlService.createHtmlOutputFromFile(css).getRawContent();
return HtmlService.createHtmlOutputFromFile(js).getRawContent();
}
getContent(timeLineCSS,timeLineJS);
</script>
<div id="mytimeline"></div>
<script type="text/javascript">
// DOM element where the Timeline will be attached
var container = document.getElementById('mytimeline');
// Create a DataSet with data (enables two way data binding)
var data = new vis.DataSet([
{id: 1, content: 'item 1', start: '2013-04-20'},
{id: 2, content: 'item 2', start: '2013-04-14'},
{id: 3, content: 'item 3', start: '2013-04-18'},
{id: 4, content: 'item 4', start: '2013-04-16', end: '2013-04-19'},
{id: 5, content: 'item 5', start: '2013-04-25'},
{id: 6, content: 'item 6', start: '2013-04-27'}
]);
// Configuration for the Timeline
var options = {};
// Create a Timeline
var timeline = new vis.Timeline(container, data, options);
</script>
</div>
要链接到时间库JS和CSS文件,我在这里发布了帖子:Use project Javascript and CSS files in a Google Apps Script web app?
我选择了最高投票的答案而非选择的答案。
所以我的app脚本库中有另外两个“html”文件:
timeLineJS:
<script>
// lots and lots of JS here
</script>
timeLineCSS
<style>
// lots of CSS here.
</style>
我现在刷新工作表并显示对话框,但没有内容。这是我右键单击对话框时控制台的屏幕截图:
您可以看到“mytimeline”div和“cabbages”文件的内容。但是对话框是空的。
我能想到的是JS和CSS没有通过链接加载。 Google-Apps-Script是否存在加载外部文件的问题?
答案 0 :(得分:0)
现在尝试使用NATIVE而不是IFRAME。
显然它是非常有缺陷的ATM,我脚本的很大一部分都是用IFRAME来表现的。
编辑: 只是摆弄你的代码。谷歌确实有外部限制,因为安全问题,它的名字是caja,你可以测试你的代码是否能正常使用它:
很明显,vis.js并不能很好地适应它。