首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使google脚本从HTML前端运行

使google脚本从HTML前端运行
EN

Stack Overflow用户
提问于 2022-01-18 18:02:46
回答 1查看 368关注 0票数 1

我有一个脚本,它将向我们的服务器运行一个HTTP请求,并带来最新的订单。

我们希望能够在请求时运行脚本,但也希望能够将其安装为不同商店的不同工作表的附件。

应用程序的前端由这个html生成。

代码语言:javascript
复制
<link href="https://ssl.gstatic.com/docs/script/css/add-ons.css"
     rel="stylesheet">


<div class="sidebar">

    
    <div class="block form-group">
            
        <button class="blue" id="load_orders">Import Order Data</button>
    </div>

    
    <div id='orders'></div>

</div>


<script>
  $(function onSuccess(load_orders) {
   
  
   });
  withSuccessHandler(onSuccess).importcogs();
 });
</script>

然后,在.gs上,我有一个脚本来显示应用程序(在部署它之前)和导入命令脚本

代码语言:javascript
复制
function onInstall() {
  onOpen();
}


function onOpen() {
  SpreadsheetApp.getUi()
  .createAddonMenu() // Add a new option in the Google Docs Add-ons Menu
  .addItem("Import Order Data", "showSidebar")
  .addToUi();  // Run the showSidebar function when someone clicks the menu
}


function showSidebar() {
  var html = HtmlService.createTemplateFromFile("Front")
    .evaluate()
    .setTitle("Import Order - Search"); // The title shows in the sidebar
  SpreadsheetApp.getUi().showSidebar(html);
}


function importcogs() {
  Logger.log("import begin");
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var urlsheet = ss.getSheetByName("GetInfo");
  var request = urlsheet.getRange(5,2).getValue();
  Logger.log(request);

  var response = UrlFetchApp.fetch(request);
  Logger.log("download data finish");
  Logger.log(response.getContentText());

  
  var sheet = ss.getSheetByName("Data");
  var obj = JSON.parse(response);
  let vs = obj.data.map(o => Object.values(o));//data
  vs.unshift(Object.keys(obj.data[0]));//add header
  sheet.getRange(1,1,vs.length, vs[0].length).setValues(vs);//output to spreadsheet


}  

由于某些原因,我无法将“导入订单”按钮链接到脚本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-20 13:42:45

正如库珀在上述评论中所说的,这不是一个独立的职能:

样本使用情况:

代码语言:javascript
复制
google.script.run.withSuccessHandler(onSuccess).importcogs();

这将作为回报,运行importcogs函数,并在该函数成功完成时触发onSuccess函数。onSuccess的参数将是名为importcogs的函数的返回(如果有)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70760338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档