簡體   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