A google.script.history é uma API JavaScript assíncrona do lado do cliente que pode interagir
  com a pilha do histórico do navegador. Ele só pode ser usado no contexto de um aplicativo da Web que usa
  IFRAME
  Não se destina ao uso com barras laterais e caixas de diálogo em um complemento ou
  container-script. Para mais informações, consulte a
  guia para usar o navegador
  em apps da Web.
Métodos
| Método | Tipo de retorno | Breve descrição | 
|---|---|---|
push(stateObject, params, hash) | 
  void | 
  Envia o objeto de estado, os parâmetros de URL e o fragmento de URL fornecidos para o histórico do navegador pilha. | 
replace(stateObject, params, hash) | 
  void | 
  Substitui o evento superior na pilha do histórico de navegação pelo objeto de estado fornecido, URL e o fragmento do URL. | 
setChangeHandler(function) | 
  void | 
  Define uma função de callback para responder a mudanças no histórico do navegador | 
Documentação detalhada
push(stateObject, params, hash)
Envia o objeto de estado, os parâmetros de URL e o fragmento de URL fornecidos para o histórico do navegador pilha. O objeto de estado é um objeto JavaScript simples que é definido pelo desenvolvedor e pode conter todos os dados relevantes para o estado atual do app. Esse método é análogo ao pushState() método JavaScript.
Index.html
var now = new Date();
var state = {
  'timestamp': now.getTime()
};
var params = {
  'options': "none"
};
google.script.history.push(state, params, "anchor1");Parâmetros
| Nome | Tipo | Descrição | 
|---|---|---|
stateObject | Object | Um objeto definido pelo desenvolvedor associado a um evento do histórico de navegação e que aparece quando o estado é exibido. Normalmente usados para armazenar informações de estado do aplicativo (como dados da página) para recuperação futura. | 
params | Object | Um objeto que contém parâmetros de URL para
  associadas a esse estado. Por exemplo, {foo: “bar”, fiz: “baz”} equivale a
  "?foo=bar&fiz=baz". Como alternativa, as matrizes podem ser usadas:
  {foo: [“bar”, “cat”], fiz: “baz”} equivale a "?foo=bar&foo=cat&fiz=baz".
  Se o valor for nulo ou indefinido, os parâmetros de URL atuais não serão alterados. Se estiver vazio, os parâmetros de URL serão
  limpos.
   | 
hash | String | O fragmento do URL da string que aparece depois o '#' caractere. Se nulo ou indefinido, o fragmento de URL atual não é alterado. Se estiver vazio, o O fragmento do URL foi apagado. | 
replace(stateObject, params, hash)
Substitui o evento superior na pilha do histórico de navegação pelo estado fornecido (definido pelo desenvolvedor). objeto, parâmetros de URL e fragmento de URL. De outro modo, é idêntico a push().
Index.html
var now = new Date();
var state = {
  'timestamp': now.getTime()
};
var params = {
  'options': "none"
};
google.script.history.replace(state, params, "anchor1");Parâmetros
| Nome | Tipo | Descrição | 
|---|---|---|
stateObject | Object | Um objeto definido pelo desenvolvedor associado a um evento do histórico de navegação e que aparece quando o estado é exibido. Normalmente usados para armazenar informações de estado do aplicativo (como dados da página) para recuperação futura. | 
params | Object | Um objeto que contém parâmetros de URL para
  associadas a esse estado. Por exemplo, {foo: “bar”, fiz: “baz”} equivale a
  "?foo=bar&fiz=baz". Como alternativa, as matrizes podem ser usadas:
  {foo: [“bar”, “cat”], fiz: “baz”} equivale a "?foo=bar&foo=cat&fiz=baz".
  Se o valor for nulo ou indefinido, os parâmetros de URL atuais não serão alterados. Se estiver vazio, os parâmetros de URL serão
  limpos.
   | 
hash | String | O fragmento do URL da string que aparece depois o '#' caractere. Se nulo ou indefinido, o fragmento de URL atual não é alterado. Se estiver vazio, o O fragmento do URL foi apagado. | 
setChangeHandler(function)
Define uma função de retorno de chamada para responder a alterações no histórico do navegador. A função de callback pode usar somente um objeto de evento como argumento.
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...
});Parâmetros
| Nome | Tipo | Descrição | 
|---|---|---|
function | Function | do lado do cliente função de retorno de chamada executada em um evento de alteração de histórico, usando o event object como o único argumento. | 
Objeto de evento
| Campos | |
|---|---|
e.state | 
      
         O objeto de estado associado ao evento exibido. Este objeto é idêntico ao estado que foi usado na zona push() ou correspondente Método replace() que adicionou o estado exibido à pilha de histórico. {"page":2, "name":"Wilbur"} | 
    
e.location | 
      
         Um objeto de localização associadas ao evento mostrado {"hash":"", "parameter":{"name": "alice", "n": "1"}, "parameters":{"name": ["alice"], "n": ["1", "2"]}} |