【问题标题】:Calling server-side script within a sidebar GAS在侧边栏 GAS 中调用服务器端脚本
【发布时间】:2015-01-03 06:01:27
【问题描述】:

我正在尝试在不同的侧边栏中调用另一个侧边栏,以在谷歌文档中创建一种选项卡式界面。我不知道如何调用在当前侧边栏的 html 文件中显示新侧边栏的服务器端函数。

这是我的 html 侧边栏按钮布局...(不起作用)

<div id='menu'>
    <button class="action" id="functions_nav">Functions</button>
    <button class="action" id="navbar">NavBar</button>
    <button class="action" id="settings" onClick="google.script.run.showSettings()">Settings</button>
  </div>

还有我的 gs 文件...

function showSettings() {
  var html = HtmlService.createHtmlOutputFromFile('settings')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('DebateDocs')
      .setWidth(300);
  DocumentApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html);
}

Google 上的文档涉及通过“input type="button"...”调用按钮,但这会影响我的样式。此外,他们总是在 javascript“脚本”标签中调用脚本。有什么方法可以将按钮路由到指向服务器的 html 文件中的 javascript 事件?

感谢您的帮助!任何值得赞赏。

【问题讨论】:

    标签: javascript google-chrome google-apps-script


    【解决方案1】:

    您的代码对我来说运行良好。

    IFRAME 沙盒模式是新的并且有一些错误,请尝试将其删除或设置为 NATIVE。

    如果您看到执行记录时发现任何错误,请分享。

    干杯。

    PS:抱歉,我知道这应该作为评论插入,但还没有这样做的声誉:(

    【讨论】:

      【解决方案2】:

      您无需直接从按钮调用.gs 脚本。您可以使用此配置。

      按钮

      <div id='menu'>
        <button class="action" id="settings" onClick="fncShowSettings()">Settings</button>
      </div>
      

      HTML 脚本标签

      <script>
        window.fncShowSettings=function(){
          console.log("fncShowSettings ran");
          google.script.run
          .showSettings(); //Runs server side .gs function
      
      </script>
      

      代码.gs

      function showSettings() {
        Code here . . . 
        return someValue;
      };
      

      我不清楚你在问什么,所以如果这没有帮助,请发表评论。

      【讨论】:

      • 使用此代码,由于某种原因,我收到错误“ReferenceError: google is not defined”... 编辑:我将模式更改为 NATIVE,它可以正常工作。
      猜你喜欢
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2018-04-10
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 2020-04-23
      相关资源
      最近更新 更多