google.script.history 類別 (用戶端 API)

google.script.history 是非同步的用戶端 JavaScript API,可與瀏覽器記錄堆疊互動。只能用於使用 IFRAME 的網頁應用程式。不適用於在外掛程式或容器指令碼內容中,與側欄和對話方塊搭配使用。詳情請參閱在網頁應用程式中使用瀏覽器歷史記錄的指南

方法

方法傳回類型簡短說明
push(stateObject, params, hash) void 將提供的狀態物件、網址參數和網址片段推送至瀏覽器記錄堆疊。
replace(stateObject, params, hash) void 將瀏覽器記錄堆疊中的主要事件替換為提供的狀態物件、網址參數和網址片段。
setChangeHandler(function) void 設定回呼函式,回應瀏覽器記錄的變更

內容詳盡的說明文件

push(stateObject, params, hash)

將提供的狀態物件、網址參數和網址片段推送至瀏覽器記錄堆疊。狀態物件是開發人員定義的簡易 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包含要與此狀態建立關聯的網址參數的物件。舉例來說,{foo: “bar”, fiz: “baz”} 相當於 "?foo=bar&fiz=baz"。或者,您也可以使用陣列:{foo: [“bar”, “cat”], fiz: “baz”} 等於 "?foo=bar&foo=cat&fiz=baz"。如果設為空值或未定義,目前的網址參數不會變更。如果留空,系統會清除網址參數。
hashString字串網址片段顯示在「#」字元後方。如果為空值或未定義,目前的網址片段就不會變更。如果留空,系統會清除網址片段。


replace(stateObject, params, hash)

將瀏覽器記錄堆疊中的熱門事件替換為所提供 (由開發人員定義) 的狀態物件、網址參數和網址片段。否則這與 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包含要與此狀態建立關聯的網址參數的物件。舉例來說,{foo: “bar”, fiz: “baz”} 相當於 "?foo=bar&fiz=baz"。或者,您也可以使用陣列:{foo: [“bar”, “cat”], fiz: “baz”} 等於 "?foo=bar&foo=cat&fiz=baz"。如果設為空值或未定義,目前的網址參數不會變更。如果留空,系統會清除網址參數。
hashString字串網址片段顯示在「#」字元後方。如果為空值或未定義,目前的網址片段就不會變更。如果留空,系統會清除網址片段。

setChangeHandler(function)

設定回呼函式,回應瀏覽器記錄的變更。回呼函式只能使用一個事件物件做為引數。

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"]}}