繁体   English   中英

用户脚本 (Javascript):如何处理来自 Google Apps 脚本的异步回调

[英]Userscript (Javascript): How to handle an asynchronous callback from Google Apps Script

编辑:这是我第四次尝试改写我的问题以获得所需的解决方案。 我为我的不清楚而道歉。

我有一个 Tampermonkey 用户脚本,可以帮助我将数据发送到 Google Sheets 数据库。

用户脚本在它运行的网页上创建一个超链接,当我想将数据发送到数据库时,我单击将在新选项卡中打开的超链接:

<a href='https://script.google.com/macros/s/XXXXXXXXXXXX/exec?data1=data' target='_blank'>Click here for a new tab</a>

我的谷歌脚本处理请求并通过这个过程返回一个异步回调结果:

return ContentService
  .createTextOutput(e.parameter.callback+"("+ output + ");")
  .setMimeType(ContentService.MimeType.JAVASCRIPT);

新标签将在我的浏览器中重定向到“ https://script.googleusercontent.com/macros/echo?user_content_key=XXXXXXXXXXXX ”,并显示返回的这两个结果之一:

{"result":"success"}

或者

{"result":"duplicate"}

根据结果​​,我会手动做一些事情。

我正在寻找一种方法来处理我的用户脚本中来自 Google 脚本的异步回调,以便我不再需要手动执行操作。 我还没有弄清楚如何在用户脚本中处理异步请求。

有人可以为我提供一些用于处理异步回调并通过 console.log() 记录结果的用户脚本代码吗?

任何帮助表示赞赏。 谢谢!

在另一个 SO 问题的帮助下,我终于能够通过 console.log 记录结果。

function getLink (url) {
GM_xmlhttpRequest ( {
    method: 'GET',
    url: url,
    onload: function (response) {
        var resp = response.responseText;
        console.log (resp);
        // DO EVERYTHING THAT REQUIRES resp HERE.
    }
} );
}

另外,我必须将以下内容添加到我的用户脚本中:

// @grant       GM_xmlhttpRequest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM