![](/img/trans.png)
[英]Google Script: How run function ShowModalDialog with trigger?
[英]Trigger/run a function in client side with onChange(). Google App Script
據我所知, google.script.run 可以從客戶端運行 gs 代碼。 那么,是否可以使用 onChange(e) 在客戶端運行/觸發 function?
我在電子表格中創建了一個側邊欄,其中包含一些 html 代碼。 例如我的 html 代碼如下:
<div>
<p id="apk">Your APK</p>
</div>
然后,每當有人更改/編輯電子表格中的范圍時,它都會自動獲取該值並將我的段落(html)值更改為用戶在該范圍中輸入的任何值。
function changeApk(){
document.getElementById("apk").innerHtml = getApk;
}
我的gs代碼:
function onChange(e){
var activeSheet = e.source.getActiveSheet();
var lr = activeSheet.getRange("F11").getDataRegion().getLastRow();
var getApk = activeSheet.getRange(lr,6).getValue();
return getApk;
}
如您所見,我試圖獲取 getApk 值並在我的段落標簽中更新它。 我希望它在用戶更改/編輯范圍后自動發生,而無需單擊 html 代碼中的任何按鈕。 現在我被困在這里。 知道怎么做嗎? 提前致謝!
您可以做的是 web 輪詢 - 通過使用setInterval()調用google.script.run
以近距離刷新您的客戶端內容。
樣本:
代碼.gs
function getValue(){
var sheet = SpreadsheetApp.openById("XXXXXX").getSheetByName("YYY");
var lr = sheet.getRange("F11").getDataRegion().getLastRow();
var getApk = sheet.getRange(lr,6).getValue();
return getApk;
}
索引.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<script>
function polling(){
setInterval(myFunction,2000);
}
function myFunction(){
var lob = document.getElementById("mySelect").value;
google.script.run.withSuccessHandler(changeApk).getValue();
}
function changeApk(getApk){
document.getElementById("apk").innerHtml = getApk;
}
</script>
<body onload="polling()">
<div>
<p id="apk">Your APK</p>
</div>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.