Ich bin ein Anfänger/Amateur-Javascript/Google Apps Script-Programmierer, also bitte vergib mir, wenn die Antwort offensichtlich sein sollte. Außerdem kann es so offensichtlich sein, dass ich nicht einmal den richtigen Suchbegriff kannte, um meine Antwort zu finden. Wenn es so ist, tut es mir leid für den Betrogenen.Wie kann ich Google Apps Script erzwingen, dass der Benutzer vor dem Laden des nächsten htmlOutput eine Schaltfläche auf einem HtmlOutput auswählt?
Ich schreibe eine Google Apps Script-Funktion, die idealerweise eine Reihe von HtmlOutput-Fenstern mit jedem folgenden Fenster öffnen würde, nachdem der Benutzer das vorherige Fenster geschlossen hat. Wenn ich jedoch versuche, es auszuführen, lädt das Skript alle Fenster der Reihe nach, ohne darauf zu warten, dass der Benutzer das vorherige Fenster schließt.
Ich bin mir auch etwas bewusst, dass es nicht beste Praxis ist, die Utilities.sleep()
Funktion zu verwenden. Ich frage mich jedoch, ob dies der einzige Weg ist, dies in diesem Fall zu erreichen. Es scheint, dass es einen offensichtlicheren, besseren Weg geben würde.
Wie kann ich das Programm zwingen, auf die Antwort des Benutzers zu warten, bevor das nächste Fenster geladen wird? Hier
ist ein Beispielcode:
//THIS FUNCTION SETS UP THE HTMLOUTPUT
function setDialog(userText){
var displayHtml = HtmlService.createHtmlOutput(
'<!DOCTYPE html>'+
'<html>'+
'<head>'+
'<base target="_top">'+
'</head>'+
'<body>'+
'<h1>'+userText+'</h1>'+
'<input type="button" value="Close" '+
'onclick="google.script.host.close()" />'+
'</body>'+
'</html>');
SpreadsheetApp.getUi()
.showModalDialog(displayHtml, 'Here's your HTML!');
}
//THIS FUNCTION DISPLAYS 4 DIALOGS BASED ON VARIABLES
function displayDialogs(){
var uOne = 'One';
var uTwo = 'Two';
var uThree = 'Three';
var uFour = 'Four';
setDialog(uOne);
setDialog(uTwo);
setDialog(uThree);
setDialog(uFour);
}
Das Verhalten, das ich oben würde sein wollen:
- Dialog: 'One' -> Benutzer klickt schließen
- Dialog: 'Two' -> Benutzer klickt auf Schließen
- Dialog: 'Drei' -> Benutzer klickt auf Schließen
- Dialog: 'Vier' -> Benutzer klickt auf Schließen
Stattdessen erhalte ich:
- Dialog: 'One', Dialog: 'Zwei', Dialog: 'Drei', Dialog: 'Vier' in schnellen Folge.
- Und dann kann der Benutzer klicken, um den vierten Dialog zu schließen.
Vielen Dank im Voraus für die Hilfe, und es tut mir leid, wenn dies ein Betrogener ist. Ich habe vor dem Posten nach einer Antwort gesucht.
Danke, Sandy, Sie haben meine Frage beantwortet. Ich fummle etwas daran herum, um meinen genauen Anwendungsfall zu erfüllen. Eine Idee besteht darin, ein Array anstelle eines Objekts zu verwenden, damit es leichter iterierbar ist. Ich habe auch Probleme mit der Übergabe anderer Parameter mit 'google.script.run', aber das ist besser für eine separate Frage. Danke noch einmal! – snoski