【问题标题】:HTMLservice dialogue box not displayingHTMLservice 对话框不显示
【发布时间】:2015-01-05 23:40:59
【问题描述】:

我最近才开始使用 Google-Apps-Scripts。我想看看是否可以使用 3rd 方 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?

我选择了票数最高的答案,而不是选择的答案。

所以我的应用脚本库中还有另外 2 个“html”文件:

timeLineJS:

<script>
// lots and lots of JS here
</script>

时间线CSS

<style>
// lots of CSS here.
</style>

我现在刷新工作表并出现对话框但没有内容。这是我右键单击对话框时控制台的屏幕截图:

您可以看到“mytimeline” div 和“cabbages”文件的内容。但是对话框是空的。

我能想到的只是 JS 和 CSS 没有通过链接加载。 Google-Apps-Script 在加载外部文件时是否存在问题?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    现在尝试使用 NATIVE 而不是 IFRAME。

    显然这是一个非常有问题的 ATM,我的脚本中有很大一部分在 IFRAME 中表现异常。

    编辑: 只是摆弄了一下你的代码。出于安全考虑,谷歌确实有外部限制,它的名字是 caja,你可以在这里测试你的代码是否能正常工作:

    https://caja.appspot.com/

    显然 vis.js 不适合它。

    【讨论】:

    • 所以只需将 IFRAME 替换为 NATIVE?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多