クラス google.script.history(クライアントサイド API)

google.script.history は、ブラウザの履歴スタックとやり取りできる、クライアントサイドの非同期 JavaScript API です。IFRAME を使用するウェブアプリのコンテキストでのみ使用できます。アドオンまたはコンテナ スクリプトのコンテキストでサイドバーやダイアログで使用することは想定されていません。詳細については、ウェブアプリでのブラウザの履歴の使用に関するガイドをご覧ください。

Methods

メソッド戻り値の型概要
push(stateObject, params, hash) void 提供された状態オブジェクト、URL パラメータ、URL フラグメントをブラウザ履歴スタックにプッシュします。
replace(stateObject, params, hash) void ブラウザの履歴スタックの最上位のイベントを、指定された状態オブジェクト、URL パラメータ、URL フラグメントに置き換えます。
setChangeHandler(function) void ブラウザ履歴の変更に応答するコールバック関数を設定する

詳細なドキュメント

push(stateObject, params, hash)

提供された状態オブジェクト、URL パラメータ、URL フラグメントをブラウザ履歴スタックにプッシュします。状態オブジェクトはデベロッパーが定義したシンプルな JavaScript オブジェクトで、アプリの現在の状態に関連するデータをすべて含めることができます。このメソッドは pushState() JavaScript メソッドに似ています。

Index.html

var now = new Date();
var state = {
  'timestamp': now.getTime()
};
var params = {
  'options': "none"
};
google.script.history.push(state, params, "anchor1");

パラメータ

名前説明
stateObjectObjectブラウザの履歴イベントに関連付けられ、状態がポップされたときに再表示される、デベロッパー定義のオブジェクト。通常は、後で取得できるようにアプリケーションの状態情報(ページデータなど)を保存するために使用されます。
paramsObjectこの状態に関連付ける URL パラメータを含むオブジェクト。たとえば、{foo: “bar”, fiz: “baz”}"?foo=bar&fiz=baz" に相当します。または、配列を使用することもできます。{foo: [“bar”, “cat”], fiz: “baz”}"?foo=bar&foo=cat&fiz=baz" と同じです。 null または未定義の場合、現在の URL パラメータは変更されません。空の場合、URL パラメータは消去されます。
hashString「#」文字の後に表示される文字列 URL フラグメント。null または未定義の場合、現在の URL フラグメントは変更されません。空の場合、URL フラグメントは消去されます。


replace(stateObject, params, hash)

ブラウザの履歴スタックの最上位のイベントを、指定された(デベロッパー定義の)状態オブジェクト、URL パラメータ、URL フラグメントに置き換えます。それ以外は push() と同じです。

Index.html

var now = new Date();
var state = {
  'timestamp': now.getTime()
};
var params = {
  'options': "none"
};
google.script.history.replace(state, params, "anchor1");

パラメータ

名前説明
stateObjectObjectブラウザの履歴イベントに関連付けられ、状態がポップされたときに再表示される、デベロッパー定義のオブジェクト。通常は、後で取得できるようにアプリケーションの状態情報(ページデータなど)を保存するために使用されます。
paramsObjectこの状態に関連付ける URL パラメータを含むオブジェクト。たとえば、{foo: “bar”, fiz: “baz”}"?foo=bar&fiz=baz" に相当します。または、配列を使用することもできます。{foo: [“bar”, “cat”], fiz: “baz”}"?foo=bar&foo=cat&fiz=baz" と同じです。 null または未定義の場合、現在の URL パラメータは変更されません。空の場合、URL パラメータは消去されます。
hashString「#」文字の後に表示される文字列 URL フラグメント。null または未定義の場合、現在の URL フラグメントは変更されません。空の場合、URL フラグメントは消去されます。

setChangeHandler(function)

閲覧履歴の変更に応答するコールバック関数を設定します。コールバック関数は、引数としてイベント オブジェクトを 1 つだけ受け取る必要があります。

Index.html

google.script.history.setChangeHandler(function (e) {
  console.log(e.state);
  console.log(e.location.parameters);
  console.log(e.location.hash);

  // Adjust web app UI to match popped state here...
});

パラメータ

名前説明
functionFunctionイベント オブジェクトを唯一の引数として使用し、履歴変更イベント時に実行されるクライアント側のコールバック関数。

イベント オブジェクト

フィールド
e.state

ポップされたイベントに関連付けられた状態オブジェクト。このオブジェクトは、ポップ状態を履歴スタックに追加した、対応する push() または replace() メソッドで使用されていた状態オブジェクトと同一です。

{"page":2, "name":"Wilbur"}
e.location

ポップされたイベントに関連付けられた位置情報オブジェクト

{"hash":"", "parameter":{"name": "alice", "n": "1"}, "parameters":{"name": ["alice"], "n": ["1", "2"]}}