Window:pageshow 事件

当浏览器由于导航显示窗口的文档时,pageshow 事件将发送到 Window

这包括

  • 最初加载页面
  • 从同一窗口或选项卡中的另一个页面导航到该页面
  • 在移动操作系统上恢复冻结的页面
  • 使用浏览器的向前或向后按钮返回页面

注意:在初始页面加载期间,pageshow 事件在 load 事件之后触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("pageshow", (event) => {});
onpageshow = (event) => {};

事件类型

事件属性

PageTransitionEvent.persisted 只读

指示文档是否从缓存中加载。

事件处理程序别名

除了 Window 接口之外,事件处理程序属性 onpageshow 也在以下目标上可用

示例

此示例为数组 events 中列出的事件设置事件处理程序。处理程序 eventLogger() 将发生的事件类型记录到控制台,并在 pageshowpagehide 事件上包含 persisted 标志的值。

JavaScript

js
const events = ["pagehide", "pageshow", "unload", "load"];

const eventLogger = (event) => {
  switch (event.type) {
    case "pagehide":
    case "pageshow": {
      let isPersisted = event.persisted ? "persisted" : "not persisted";
      console.log(`Event: ${event.type} - ${isPersisted}`);
      break;
    }
    default:
      console.log(`Event: ${event.type}`);
      break;
  }
};

events.forEach((eventName) => window.addEventListener(eventName, eventLogger));

HTML

html
<p>
  Open the console and watch the output as you navigate to and from this page.
  Try loading new pages into this tab, then navigating forward and backward
  through history, noting the events' output to the log.
</p>

结果

规范

规范
HTML 标准
# event-pageshow

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅