【问题标题】:How can I reference a Google Apps Script .html file from another library?如何引用另一个库中的 Google Apps Script .html 文件?
【发布时间】:2015-06-24 18:32:59
【问题描述】:

我正在编写一组 HTML 页面,这些页面将在 Google 表格侧边栏上提供,并将连接到我们的内部数据库。每个页面都在单个 Google Apps 脚本项目中根据自己的 .html 文件进行设置。

我想将这些文件提取到单个项目中,并将其作为库引用,就像我可以使用其他 .gs 脚本文件一样。具体来说,下面的“MyLib.page”行怎么写?

图书馆项目:

代码.gs

function myFunc() { Logger.log("Hallo Werld!");}

page.html

<h1>
  Hello world!
</h1>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
     google.script.run.myFunc();
     });
</script>

电子表格脚本编辑器(包含的库标识符:MyLib)

代码.gs

function callLibFunc() {
  MyLib.myFunc();
}

function loadSidebar() {
  var html = HtmlService.createTemplateFromFile("MyLib.page").evaluate()
             .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  SpreadsheetApp.getUi().showSidebar(html);
}

【问题讨论】:

    标签: google-apps-script google-sheets web-applications


    【解决方案1】:

    使 Lib 打开侧边栏:

    图书馆项目:

    代码.gs

    function loadSidebar() {
      var html = HtmlService.createTemplateFromFile("MyLib.page").evaluate()
                 .setSandboxMode(HtmlService.SandboxMode.IFRAME);
      SpreadsheetApp.getUi().showSidebar(html);
    }
    

    电子表格脚本编辑器

    代码.gs

    function callLibFunc() {
      MyLib.loadSidebar();
    }
    

    【讨论】:

    • @Kriggs 这很好用 - 谢谢!但我现在无法从这些页面使用 google.script.run 回调服务器。 This link 似乎也说我不能在库中使用那些服务器功能。
    • @GilbertW 你能发布一个你想要完成的任务吗?
    • 我更新了上面的 page.html 示例以在库中调用 myFunc(),但无法获取“Hallo Werld!”被记录。如果将 myFunc() 放在脚本编辑器中它会起作用,但这仍然有点违背库的目的。
    • 您必须使用解决方法,创建另一个函数 function myLibsFunction( functionToCall ){ myLibs[ functionToCall ]() },然后使用 myLibsFunction('myFunc'),这个 myLibsFunction 必须在每个电子表格中。
    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多