Javascript 从iOS浏览器中的前向缓存检索页面时一致激发的事件
当我在mobile(iOS 10.2.1)Safari或Chrome上使用后退按钮时:Javascript 从iOS浏览器中的前向缓存检索页面时一致激发的事件,javascript,ios,safari,Javascript,Ios,Safari,当我在mobile(iOS 10.2.1)Safari或Chrome上使用后退按钮时: window的pageshow事件为。建议如下: 窗口的popstate事件未激发。建议在: 未激发文档的readystatechange事件。建议如下: 为什么我需要这个 我在单击时禁用“提交”按钮,因此表单不能多次提交,但当用户使用浏览器的“返回”按钮返回页面时,由于缓存的原因,“提交”按钮将保持禁用状态 我需要一个在用户离开页面或返回页面时触发的事件,以便我可以重新启用submit按钮。卸载事件从不
- window的pageshow事件为。建议如下:
- 窗口的popstate事件未激发。建议在:
- 未激发文档的readystatechange事件。建议如下:
window.addEventListener('pageshow', function (e) {
if (e.persisted) {
window.location.reload();
}
}, false);
但这违背了BFCache的全部观点。当使用浏览器的“后退”按钮而不重新加载整个页面时,是否没有可靠的方法来执行某些工作?这似乎是Webkit的一个已知错误:
我接受morgoe的回答,因为他提到的错误没有可靠的事件 这里有一个解决绝望的办法:
它通过使用用户代理嗅探来检测iOS浏览器,在第一个背面重新加载页面,从而禁用BF缓存
window.addEventListener('pageshow', function (e) {
e.persisted &&
/iPad|iPhone|iPod/.test(navigator.userAgent) &&
!window.MSStream &&
window.location.reload();
}, false);
你这次运气好吗?我仍在努力让它发挥作用。