Ich versuche, alle Editoren eines Google Spreadsheet in einem HTML-Iframe in einer Google Sheet-Seitenleiste aufzulisten. Wie Sie im folgenden Code sehen können, zeige ich die Ergebnisse im Logger; Es funktioniert dort, zeigt mir die Liste der Editoren. Aber wenn ich die Ergebnisse mit google.script.run
an die HTML-Datei übergebe, scheint es auf dem Weg "verloren" zu gehen. Ich erhalte keine Fehler, nur eine Null-Liste in der Seitenleiste.Client successHandler wird null, aber Serverprotokolle zeigen Ergebnisse
Ich habe den folgenden Code in dem .gs:
function myFunction() {
var html = HtmlService.createHtmlOutputFromFile('form1');
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showSidebar(html);
}
function editores() {
var editors = SpreadsheetApp.getActiveSpreadsheet().getEditors();
for (var i = 0; i < editors.length; i++) {
var editor = editors[i];
Logger.log(editor)
}
return editors;
}
Und diesen Code in dem HTML:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function listEditors(editors) {
for (var i = 0; i < editors.length; i++) {
var eltag = document.getElementById('edit').innerHTML;
var edit = editors[i];
document.getElementById('edit').innerHTML = eltag+'<br/>'+edit;
}
}
google.script.run.withSuccessHandler(listEditors).editores();
</script>
</head>
<body>
<p id='edit'></p>
</body>
</html>
Wenn ich myFunction()
ausführen öffnet es die Seitenleiste eine Liste von "null" zeigt . Aber wenn ich den Logger in der Skriptkonsole öffne, zeigt er die Liste der Editoren an ... Scheint so, als ob die Daten auf dem Weg "verloren" sind.
aus irgendeinem Grund funktioniert getEditors nicht für mich, aber abgesehen davon funktioniert dein Code perfekt, Siehst du irgendeinen Fehler in der Javascript Konsole? –
keine Fehler, nur eine Null-Liste in der Seitenleiste –