使用google脚本和html从服务器端函数传递数组

时间:2015-03-18 14:53:43

标签: html google-apps-script

我有一个html页面,将被提供给谷歌工作表应用程序以用作UI。我想从html文件中的服务器端函数访问一个数组。我无法访问返回的数组。这就是我所拥有的:

在html文件中:

<div id="id1">
   Starting 1
</div>

<div id= "id2">
   Starting 2
</div>

<script type="text/javascript">
   document.getElementById("id1").innerHTML = "A change";
</script>


<script type="text/javascript">
   function onSuccess(numUnread) {
    alert('You have ' + numUnread[0]
       + ' unread messages in your Gmail inbox.');
       document.getElementById("id2").innerHTML = numUnread[0];
}

 google.script.run.withSuccessHandler(onSuccess)
  .getPermits();
</script>

在code.gs中:

function getPermits()
{
  var permits = [];

  for(var i = 0; i < 10; i++)
  {
     permits.push('Element ' + i);
  }

  return permits;
}

现在我只想弄清divid = "id2"

的原因

不会更改为传递的数组中的第一个元素。相反,它没有改变。此外,没有警报。如果我将gePermits()函数的返回值更改为字符串,则div和alert都会按预期工作。

提前致谢!

1 个答案:

答案 0 :(得分:1)

某些类型不会通过HTMLService传递,但您可以随时使用STRINGIFY和PARSE,尝试:

return JSON.stringify(permits);

并在html中:

function onSuccess(numUnread) {
  numUnread = JSON.parse(numUnread);