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");
參數
名稱 | 類型 | 說明 |
---|---|---|
stateObject | Object | 要與瀏覽器記錄事件建立關聯的開發人員定義的物件,會在狀態彈出時重新出現。通常用於儲存應用程式狀態資訊 (例如網頁資料),以便日後擷取。 |
params | Object | 包含要與此狀態建立關聯的網址參數的物件。舉例來說,{foo: “bar”, fiz: “baz”} 相當於 "?foo=bar&fiz=baz" 。或者,您也可以使用陣列:{foo: [“bar”, “cat”], fiz: “baz”} 等於 "?foo=bar&foo=cat&fiz=baz" 。如果設為空值或未定義,目前的網址參數不會變更。如果留空,系統會清除網址參數。
|
hash | String | 字串網址片段顯示在「#」字元後方。如果為空值或未定義,目前的網址片段就不會變更。如果留空,系統會清除網址片段。 |
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");
參數
名稱 | 類型 | 說明 |
---|---|---|
stateObject | Object | 要與瀏覽器記錄事件建立關聯的開發人員定義的物件,會在狀態彈出時重新出現。通常用於儲存應用程式狀態資訊 (例如網頁資料),以便日後擷取。 |
params | Object | 包含要與此狀態建立關聯的網址參數的物件。舉例來說,{foo: “bar”, fiz: “baz”} 相當於 "?foo=bar&fiz=baz" 。或者,您也可以使用陣列:{foo: [“bar”, “cat”], fiz: “baz”} 等於 "?foo=bar&foo=cat&fiz=baz" 。如果設為空值或未定義,目前的網址參數不會變更。如果留空,系統會清除網址參數。
|
hash | String | 字串網址片段顯示在「#」字元後方。如果為空值或未定義,目前的網址片段就不會變更。如果留空,系統會清除網址片段。 |
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... });
參數
名稱 | 類型 | 說明 |
---|---|---|
function | Function | 使用事件物件做為唯一的引數,在記錄變更事件時執行的用戶端回呼函式。 |
事件物件
欄位 | |
---|---|
e.state |
與彈出事件相關聯的狀態物件。這個物件與對應的 push() 或 replace() 方法使用的狀態物件,會將彈出狀態新增至記錄堆疊。 {"page":2, "name":"Wilbur"} |
e.location |
與彈出事件相關聯的位置物件 {"hash":"", "parameter":{"name": "alice", "n": "1"}, "parameters":{"name": ["alice"], "n": ["1", "2"]}} |