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

时间:2015-01-03 06:01:27

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

我正在尝试在另一个侧边栏中调用另一个侧边栏,以在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);
}

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

感谢您的帮助!任何人都表示赞赏。

2 个答案:

答案 0 :(得分:1)

你的代码对我来说很好。

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

如果您看到执行记录,如果您能找到任何错误,请分享。

干杯。

PS:对不起,我知道这应该作为评论插入,但是还没有声名鹊起:(

答案 1 :(得分:0)

您无需直接通过按钮调用.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;
};

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