Google表格中的Javascript中未定义的退货

时间:2017-01-26 02:14:50

标签: google-sheets

为什么我从这段代码中得到一个未定义的结果?

的index.html

<div>
  <input type="text" id="emp_name" placeholder="Employee Name" >
  <p id="en"></p>
</div>
    <script>
  $( document ).ready(function() {
    $( "#submit_password" ).submit(function() {
      google.script.run.withSuccessHandler(function(ret){
        $( "#thank_you" ).show();
        $("#submit_password").slideUp();
        console.log(ret);
      }).sendPassword(this); 
      reloadSite();
    });
    getEmployeeName();
  }); 

function getEmployeeName(){
    alert(google.script.run.getEmployeeName());
    document.getElementById('emp_name').value = google.script.run.getEmployeeName();
    var name = google.script.run.getEmployeeName();
    document.getElementById("en").innerHTML = name;
  }
<script>

code.gs

function getEmployeeName(){
  var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1N-AeSs-vOa2nLPWx9gNBkeVkSq7Vp7D-0DWpXH1nh5o/edit#gid=0')
  .getSheets()[0];
  var value = ss.getRange(5,2,1,1).getValues();
  var name = value[0][0];
  Logger.log(name);  
  return name;
}

但在我的Logger中,我得到了预期的结果。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

代码是异步运行的,可能还没有完成执行,结果仍未定义。

尝试添加HTML

function suc(x) {
  return x;
}

然后

document.getElementById('emp_name').value = 
    google.script
          .run
          .withSuccessHandler(suc)
          .getEmployeeName();