在侧边栏 GAS 中调用服务器端脚本

Calling server-side script within a sidebar GAS

我正在尝试调用另一个侧边栏中的另一个侧边栏以在 google 文档中创建一种选项卡式界面。我无法弄清楚如何在当前侧边栏的 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=" 按钮“...”调用按钮,但这会影响我的样式。此外,他们总是在 javascript "script" 标签内调用脚本。有什么方法可以将按钮路由到指向服务器的 html 文件中的 javascript 事件?

感谢您的帮助!不胜感激。

你的代码对我来说工作正常。

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

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

干杯。

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

您不需要直接从按钮调用 .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>

Code.gs

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

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