Обработка изменений в истории в Google Apps Script Web App - PullRequest
0 голосов
/ 22 марта 2020

Я создаю веб-приложение с помощью Google Apps Script, ищу репликацию многостраничного сайта и пытаюсь заставить изменения истории делать то, что я хочу.

У меня есть ссылки, настроенные с событием слушатели, которые используют google.script.history.push(), например:

document.getElementById('navPage1').addEventListener('click', function() {
  google.script.history.push({timestamp:new Date().getTime(),page:'page1'}, {page:'page1'})
});

Когда я нажимаю на эту ссылку, я вижу обновление URL-адреса в соответствии с параметрами (то есть до https://script.google.com/a/XXX/macros/s/XXX/dev?page=page1).

В моем файле HTML я хочу использовать google.script.history.setChangeHistory(), чтобы обнаружить эти изменения и соответственно загрузить контент. Тем не менее, событие, кажется, не запускается вообще. В настоящее время он настроен только для регистрации изменений в истории, и я вообще ничего не вижу:

google.script.history.setChangeHandler(function(e) {
  console.log('History Change Triggered');
});

Не понял ли я, как их следует использовать?

1 Ответ

2 голосов
/ 22 марта 2020

Как написано в документации ,

Вызов history.pushState () или history.replaceState () не вызовет событие popstate. Событие popstate вызывается только при выполнении действия браузера, такого как нажатие кнопки «Назад» (или вызов history.back () в JavaScript), при переходе между двумя записями истории для одного и того же документа.

Связанный ответ:

Пример веб-приложения

...