【问题标题】:Pass Javascript variable to Google Script function (Google Sheets)将 Javascript 变量传递给 Google 脚本函数(Google 表格)
【发布时间】:2015-03-12 05:36:47
【问题描述】:

我有一个获取 src 值的 JavaScript 函数

<div>
  <img src="theUrl" id="imgID" onclick="myImageUrl()" />
</div>

<script>

  function myImageUrl() {
    var q = document.getElementById(imgID).src;
      google.script.run
       .imageCell();
  }

</script>

我似乎不知道如何将其传递到 Google 应用程序函数中,因此我可以将图像 URL 实现到单元格中,例如

function imageCell() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var range = ss.getActiveRange();

  range.setValue(q);
}

更新:

感谢 Amit,但除非我遗漏了某些内容,否则不允许将该值用作已保存的 var。我是双向运行的

HTML

 <div id="theImageUrl">
    <img src="http://placekitten.com/100/100" id="theImageUrl" onclick="getImage()" />      
    </div>
    <script>
        function getImage() {
            q = document.getElementById( 'theImageUrl ).src;
            google.script.run.imageCell(q);
            }
        </script>

由我的小提琴Fiddle验证

服务器端

function imageCell(q) {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
 var range = ss.getActiveRange();

range.setValue(q);
}

*.setValue(q) & .setValue();

【问题讨论】:

  • 使用 Apps Script 中的调试器来调试您的代码。 Troubleshooting 提供有关错误消息的具体信息,以及错误发生在哪一行。在脚本编辑器中查看执行记录以确定代码是否成功执行。浏览器中带有 HTML 的错误将显示在浏览器控制台中。
  • imageCell() 函数中使用Logger.log('image is: ' + q) 语句。然后在代码运行后查看日志。什么打印到日志?

标签: javascript html image google-apps-script google-sheets


【解决方案1】:

在 HTML 方面:

google.script.run.imageCell(q);

在服务器端:

function imageCell(q) { ...

【讨论】:

  • 谢谢阿米特,但这似乎不起作用。我已经用你的代码更新了我的问题,以展示使用了什么。
  • 需要进行更多更改。由于您使用的是 HTMLService,因此您只能通过 SpeadsheetApp.openById() 方法访问工作表。
  • 如果 HTML 在对话框中,getActiveSpreadsheet() 应该可以工作。
猜你喜欢
  • 2019-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
相关资源
最近更新 更多