Googleシートサイドバー内のHTML iframeにGoogleスプレッドシートのすべてのエディタを表示しようとしています。以下のコードでわかるように、私は結果をロガーに表示します。それはそこで動作し、私に編集者のリストを示します。しかし、結果をgoogle.script.run
を使ってHTMLファイルに渡すと、途中で "迷子になる"ようです。私はエラーを受け取りません。サイドバーには単に「ヌル」リストしかありません。クライアントsuccessHandlerがnullになりますが、サーバーログに結果が表示されます
私は.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;
}
そして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>
私はmyFunction()
を実行すると、それは「ヌル」のリストを示すサイドバーを開くに。しかし、スクリプトコンソールでLoggerを開くと、エディタのリストが表示されます。データが途中で "失われている"ようです。
getEditorsは私のために今は動作しませんが、あなたのコードは完全にうまくいきます.JavaScriptコンソールにエラーが表示されますか? –
エラーなし、サイドバーの「ヌル」リスト –