google.script.history
是一个可与浏览器历史记录堆栈进行交互的异步客户端 JavaScript API。它只能在使用 IFRAME
的 Web 应用的上下文中使用。它不适用于插件或容器脚本上下文中的边栏和对话框。如需了解详情,请参阅有关在 Web 应用中使用浏览器历史记录的指南。
方法
方法 | 返回类型 | 简介 |
---|---|---|
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" 。如果为 null 或 undefined,系统不会更改当前网址参数。如果为空,则会清除网址参数。
|
hash | String | 字符串网址片段出现在 '#' 字符后面。如果为 null 或 undefined,系统不会更改当前的网址片段。如果为空,则系统会清除网址片段。 |
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" 。如果为 null 或 undefined,系统不会更改当前网址参数。如果为空,则会清除网址参数。
|
hash | String | 字符串网址片段出现在 '#' 字符后面。如果为 null 或 undefined,系统不会更改当前的网址片段。如果为空,则系统会清除网址片段。 |
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"]}} |