如何在HTML服务按钮上单击调用服务器脚本功能

时间:2015-11-05 17:07:06

标签: google-apps-script google-sheets

我有一个库,已导入我的电子表格。

库文件包含这两个文件(sona)

  1. customHtml.gs // UI
  2. customScript.gs //代码
  3. 电子表格文件

    1. code.gs
    2. customHtml.gs 代码(我的库)

      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
       <input id="txt1" type="text" />
       <input id="txt2" type="text" />
       <input id="Button1" class="btnSave" type="button" value="Save" />
      
       <script>
       $("#Button1").on('click',function(){
      
          var param1=$("#txt1").val();
          var param2=$("#txt2").val();
           google.script.run.getCars(param1, param2);
       });
       </script>
      

      customScript.gs

        function sonatask_Assign(){
          var html = HtmlService.createHtmlOutputFromFile('customHtml')
          .setSandboxMode(HtmlService.SandboxMode.IFRAME)
          .setWidth(900)
          .setHeight(500);
          return html;
      }
      
       function getCars(param1, param2){
      
        // code logic
         Logger.log(param1,param2);
      }
      

      电子表格(code.gs)

      function onOpen() {
        var ui = SpreadsheetApp.getUi();
        // Or DocumentApp or FormApp.
        ui.createMenu('► BOT')
        .addSeparator()
        .addItem('Task Assign ', 'fn_task_Assign')
        .addItem('☎ Help ', 'helpMethod')
        .addToUi();
      }
      
      // display dialog box with custom HTML (which is stored in library)
       function fn_task_Assign(){
           // get html from library (reason behind using HTML from library, is to acces only specific user. As spreadsheet is availabe to all any one can make a copy of it, but functions will not work unless i acces them to this library )   
           var showHTML = sona.sonatask_Assign();
           Logger.log(abc);
           SpreadsheetApp.getUi().showModalDialog(showHTML, " "); 
        }
      

      fn_task_Assign 上显示模型框。即2个txtbox和一个按钮。 现在点击按钮我尝试调用getCars函数,但它不起作用。

1 个答案:

答案 0 :(得分:0)

在code.gs中创建getCars并调用sona.getCars();

function getCars(param1, param2) {
  sona.getCars(param1, param2);
}

另外在这一切都可以工作,你的图书馆需要一个独立的脚本。否则它不会工作。