私はgoogleシートの値に基づいて配列に値を設定するだけでなく、Webアプリケーションを作成する次のGoogleアプリケーションスクリプトを持っています。私のコードの一番上のセクションはテストされ、うまく動作します。GASスクリプトからhtmlファイルに配列を渡す、Global J.S.変数
function doGet() {
return HtmlService.createHtmlOutputFromFile('FormFile')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function ChannelList() {
var InfoSheetIterator = DriveApp.getFilesByName("InfoSheets");
var InfoSheetFile = InfoSheetIterator.next();
var InfoSheet = SpreadsheetApp.open(InfoSheetFile);
var NumChannels = getLastRow('A');
var ChannelTwoDimArray = InfoSheet.getRange('A2:A'+String(NumChannels)).getValues();
return ChannelTwoDimArray;
}
その後、私はJavaScriptでグローバル変数として配列を宣言し、さらにこのコードの道を他の目的のためにその配列を使用しようとする過程でいます。私は空の配列を取得していると私はなぜわからない。任意のヒントをいただきました。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<button type="button" onclick="tester()">Click Me!</button>
<p id = "tester"></p>
<script>
//declaring global variables
window.onload = populateArrays;
function getChannelList(value) {
window.ChannelList = value;
}
function populateArrays() {
google.script.run.withSuccessHandler(getChannelList).ChannelList();
}
function tester() {
document.getElementById("demo").innerHTML = window.ChannelList[0][0];
}
</script>
</body>
</html>
編集:私は試してみました物事: - 複数のスクリプトタグを追加します。
- ChannelList値の出力にタイムアウトを設定する。 - グローバル変数 - ローカルストレージウィンドウ変数
ここには何かがありません。 ChannelListの値をgetChannelList()メソッドで出力するとうまくいきますが、そのスコープの外側にある値にアクセスしようとすると、そのような運がありません。
を追加します。セッションに残っているブラウザのウィンドウオブジェクトにデータを配置することができます。 'window.ChannelList = value;'隠されたHTMLタグにコンテンツを保存することができます。ブラウザのローカルストレージにコンテンツを保存することができます。 [情報へのリンク - ローカルストレージ](http://www.w3schools.com/html/html5_webstorage.asp) –
@SandyGoodは隠されたhtmlタグメソッドを除いてすべてを試みました。アプリケーションのスクリプト関数からWebアプリケーションのjavascriptグローバル変数に値を渡す標準的な方法はありますか? – IntegrateThis
戻ってきた値をチェックし、 'getChannelList(value)'関数で受け取ったことはありますか? 'console.log( 'value:' + value)'ブラウザに到達したときに返される値は? –