处理 Google Apps 脚本 Web 应用程序中的历史更改

Handling History Changes In Google Apps Script Web App

我正在使用 Google Apps 脚本构建一个网络应用程序,希望复制一个多页面站点,并努力让历史更改来执行我想要的操作。

我已经 link 设置了使用 google.script.history.push() 的事件侦听器,如下所示:

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

当我单击此 link 时,我看到 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');
});

我是不是误解了这些应该如何使用?

documentation

中所写

Calling history.pushState() or history.replaceState() won't trigger a popstate event. The popstate event is only triggered by performing a browser action, such as clicking on the back button (or calling history.back() in JavaScript), when navigating between two history entries for the same document.

相关答案:

Sample web app