gpt4 book ai didi

javascript - Safari 上的 pageshow 事件

转载 作者:行者123 更新时间:2023-11-30 00:19:11 25 4
gpt4 key购买 nike

我有以下简单的 JavaScript,我需要它来在页面重新加载时重新初始化一些变量,特别是当页面从 Safari BFCache 提供时:

jQuery(window).bind('pageshow', function(event) {
// I could inspect event.originalEvent.persisted here to check for BFCache hits,
// but it isn't required in this instance.

// Do some initialisation here
});

假设用户遵循以下路径,导航到页面 B 和 C,然后浏览回(即使用后退按钮)页面 A:

A -> B -> A -> C -> A

pageshow 处理程序仅在第一次和第二次访问 A 时触发,即初始页面加载和第一次 BFCache 加载。所以从本质上讲,似乎从 BFCache 提供的页面会触发 pageshow 一次且仅一次。

这是 Safari 上的预期行为吗,是否有解决方法?

最佳答案

我似乎通过绑定(bind)到 popstate 事件解决了这个问题:

jQuery(window).bind('popstate', function(event) {
// Do some initialisation here
});

每当事件的历史条目改变时触发。这似乎会持续触发而不是只触发一次,因此实现了每当用户登陆页面时执行重新初始化的目标,而不管到达那里的机制如何。

关于javascript - Safari 上的 pageshow 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com