我正在尝试传递在Javascript文件中创建的2D数组:
Code.gs
function getPermits()
{
Logger.log('Starting permits');
var permits = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange().getValues();
Logger.log('Got permits: ' + permits [0][0]);
return permits;
}
我在这个html文件中使用处理程序调用该函数:
<script type="text/javascript">
function onSuccess(numUnread) {
alert('You have ' + numUnread[0][0]
+ ' unread messages in your Gmail inbox.');
document.getElementById("id2").innerHTML = numUnread[0][0];
}
function onFail(numUnread){
alert('Script failed!');
}
google.script.run.withSuccessHandler(onSuccess).getPermits();
google.script.run.withFailureHandler(onFail).getPermits();
</script>
Logger.log('Got permits: ' + permits[0][0]);
无论如何,呼叫都是完美的。然而,虽然我可以以这种方式传递一维数组并且工作正常,但传递2D数组会导致失败。为什么会这样?我是否使用了不正确的语法?
提前致谢
答案 0 :(得分:1)
将其字符串化为JSON对象,然后您只能传递一个字符串,它可以正常工作:
return JSON.stringify(permits);
在HTML上:
function onSuccess(numUnread) {
numUnread = JSON.parse(numUnread);