Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HtmlService:google.script.run不识别gs函数_Javascript_Html_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript HtmlService:google.script.run不识别gs函数

Javascript HtmlService:google.script.run不识别gs函数,javascript,html,google-apps-script,google-sheets,Javascript,Html,Google Apps Script,Google Sheets,我目前正在尝试将一组值从Google工作表传递到HtmlService,让用户选择一个选项,并最终将其传递回.gs脚本。我一直使用这两个链接作为参考: 1. 2. 运行代码时,我查看了控制台并注意到以下错误: VM3051:4未捕获类型错误:google.script.run.withSuccessHandler(…).getVersionArray不是函数 似乎未正确传递getVersionArray()。从google.script.run调用的其余部分删除此函数时,错误消失 另外,根据第

我目前正在尝试将一组值从Google工作表传递到HtmlService,让用户选择一个选项,并最终将其传递回.gs脚本。我一直使用这两个链接作为参考: 1. 2.

运行代码时,我查看了控制台并注意到以下错误:
VM3051:4未捕获类型错误:google.script.run.withSuccessHandler(…).getVersionArray不是函数
似乎未正确传递
getVersionArray()
。从
google.script.run
调用的其余部分删除此函数时,错误消失

另外,根据第二个链接,我尝试了使用模板的代码,甚至没有弹出一个窗口,所以我一直使用Google文档链接中的HtmlOutput示例作为起点。我还尝试了使用和不使用SandboxMode声明的代码

gs代码:

function bugPieChart() {
  getVersionArray();
  openDialog();

function getVersionArray() {

  var ss = SpreadsheetApp.getActive();
  var valuesR = ss.getSheetByName("report").getRange('R1:R').getValues();
  var valuesS = ss.getSheetByName("report").getRange('S1:S').getValues();

  var versionRSArray = [];

  for (var i = 0; i < valuesR.length; i++) {
    versionRSArray.push(valuesR[i][0]);
  }

  for (var i = 0; i < valuesS.length; i++) {
    versionRSArray.push(valuesS[i][0]);
  }

  versionRSArray.sort();

  var uniqueArray = [];

  uniqueArray.push(versionRSArray[0]);

  for (var i in versionRSArray ) {  
    if((uniqueArray[uniqueArray.length-1]!=versionRSArray[i]) && (versionRSArray[i] !== "")) {
      uniqueArray.push(versionRSArray[i]);
    }
  }
  return uniqueArray;
}

function openDialog() {    
  var html = HtmlService.createHtmlOutputFromFile('index');
  SpreadsheetApp.getUi().showModalDialog(html, 'Dialog title');
  var htmlOutput = html.setSandboxMode(HtmlService.SandboxMode.NATIVE);
  return htmlOutput;  
}

}
函数bugPieChart(){
getVersionArray();
openDialog();
函数getVersionArray(){
var ss=SpreadsheetApp.getActive();
var valuesR=ss.getSheetByName(“报告”).getRange('R1:R').getValues();
var valuesS=ss.getSheetByName(“报告”).getRange('S1:S').getValues();
var versionRSArray=[];
对于(变量i=0;i
index.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script>
      $(function() {
        google.script.run.withSuccessHandler(buildOptionsList)
            .getVersionArray();
      });
      function buildOptionsList(uniqueArray) {
        var list = $('#optionList');
        list.empty();
        for (var i = 0; i < uniqueArray.length; i++) {
          list.append('<option value="' + uniqueArray[i].toLowerCase() + '">' + uniqueArray[i] + '</option>');
        }  
      }      
    </script>
  </head>
  <body>
    <select id="optionList">
      <option>Loading...</option>    
    </select> 
    <input type="button" value="Close" onclick="google.script.host.close()" />
  </body>
</html>

$(函数(){
google.script.run.withSuccessHandler(BuildOptions列表)
.getVersionArray();
});
函数构建选项列表(uniqueArray){
变量列表=$(“#选项列表”);
list.empty();
对于(变量i=0;i
我认为您刚才在它上面的函数中缺少了一个右括号

function bugPieChart() {
  getVersionArray();
  openDialog();
}

function getVersionArray() {

  var ss = SpreadsheetApp.getActive();
  var valuesR = ss.getSheetByName("report").getRange('R1:R').getValues();
  var valuesS = ss.getSheetByName("report").getRange('S1:S').getValues();

  var versionRSArray = [];

  for (var i = 0; i < valuesR.length; i++) {
    versionRSArray.push(valuesR[i][0]);
  }

  for (var i = 0; i < valuesS.length; i++) {
    versionRSArray.push(valuesS[i][0]);
  }

  versionRSArray.sort();

  var uniqueArray = [];

  uniqueArray.push(versionRSArray[0]);

  for (var i in versionRSArray ) {  
    if((uniqueArray[uniqueArray.length-1]!=versionRSArray[i]) && (versionRSArray[i] !== "")) {
      uniqueArray.push(versionRSArray[i]);
    }
  }
  return uniqueArray;
}

function openDialog() {    
  var html = HtmlService.createHtmlOutputFromFile('index');
  SpreadsheetApp.getUi().showModalDialog(html, 'Dialog title');
  var htmlOutput = html.setSandboxMode(HtmlService.SandboxMode.NATIVE);
  return htmlOutput;  
}
函数bugPieChart(){
getVersionArray();
openDialog();
}
函数getVersionArray(){
var ss=SpreadsheetApp.getActive();
var valuesR=ss.getSheetByName(“报告”).getRange('R1:R').getValues();
var valuesS=ss.getSheetByName(“报告”).getRange('S1:S').getValues();
var versionRSArray=[];
对于(变量i=0;i
Ahh好的。还有很多东西要学。我没有遗漏那个括号,但它位于最底部。我在bugPieChart()函数中还有另外两个函数。我只是把括号向上移动,这样3个函数是分开的。非常感谢,标记为答案。