[英]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.