google.script.history 类(客户端 API)

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");

参数

名称类型说明
stateObjectObject一个由开发者定义的对象,将与浏览器历史记录事件相关联,在状态弹出时重新显示。通常用于存储应用状态信息(如页面数据),以供将来检索。
paramsObject一个对象,包含要与此状态相关联的网址参数。例如,{foo: “bar”, fiz: “baz”} 相当于 "?foo=bar&fiz=baz"。或者,您也可以使用数组:{foo: [“bar”, “cat”], fiz: “baz”} 相当于 "?foo=bar&foo=cat&fiz=baz"。如果为 null 或 undefined,则当前的网址参数不会更改。如果为空,系统会清除网址参数。
hashString出现在“#”字符之后的字符串网址片段。如果为 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");

参数

名称类型说明
stateObjectObject一个由开发者定义的对象,将与浏览器历史记录事件相关联,在状态弹出时重新显示。通常用于存储应用状态信息(如页面数据),以供将来检索。
paramsObject一个对象,包含要与此状态相关联的网址参数。例如,{foo: “bar”, fiz: “baz”} 相当于 "?foo=bar&fiz=baz"。或者,您也可以使用数组:{foo: [“bar”, “cat”], fiz: “baz”} 相当于 "?foo=bar&foo=cat&fiz=baz"。如果为 null 或 undefined,则当前的网址参数不会更改。如果为空,系统会清除网址参数。
hashString出现在“#”字符之后的字符串网址片段。如果为 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...
});

参数

名称类型说明
functionFunction要在发生历史记录更改事件时运行的客户端回调函数,并且使用事件对象作为唯一参数。

事件对象

字段
e.state

与弹出事件关联的状态对象。此对象与将弹出状态添加到历史记录堆栈的相应 push()replace() 方法中使用的状态对象相同。

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

与弹出的事件关联的位置对象

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