クラス 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"]}}