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

Calling server-side script within a sidebar GAS

本文关键字:服务器端 脚本 调用 侧边栏 GAS      更新时间:2023-09-26

我正在尝试在不同的侧边栏中调用另一个侧边栏,以在谷歌文档中创建一种选项卡式界面。我不知道如何调用在当前侧边栏的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);
}

谷歌上的文档处理通过"输入类型="按钮"调用按钮..."但是这会搞砸我的造型。此外,他们总是调用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;
};

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