Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中强制从不同页面返回popstate的最佳方法是什么_Javascript_Cross Browser_Popstate - Fatal编程技术网

javascript中强制从不同页面返回popstate的最佳方法是什么

javascript中强制从不同页面返回popstate的最佳方法是什么,javascript,cross-browser,popstate,Javascript,Cross Browser,Popstate,我相信其他人以前也遇到过这个问题,但这让我头疼 我有一个生成产品列表的页面。这是一个很长的列表,所以可能要翻几页。我有返回和下一步按钮来实现这一点,如果用户保持与列表 当用户从列表中选择产品并导航到新页面以显示该产品的更多详细信息时,就会出现问题。当用户完成此页面并退出时,产品列表将在用户离开时重新显示 在chrome中,popstate被触发,我必须在下一个popstate上调整所需的返回次数(由于我已经执行了PushState),以便让返回按钮转到正确的上一页。在firefox中,页面是从缓

我相信其他人以前也遇到过这个问题,但这让我头疼

我有一个生成产品列表的页面。这是一个很长的列表,所以可能要翻几页。我有返回和下一步按钮来实现这一点,如果用户保持与列表

当用户从列表中选择产品并导航到新页面以显示该产品的更多详细信息时,就会出现问题。当用户完成此页面并退出时,产品列表将在用户离开时重新显示

在chrome中,popstate被触发,我必须在下一个popstate上调整所需的返回次数(由于我已经执行了PushState),以便让返回按钮转到正确的上一页。在firefox中,页面是从缓存中恢复的,我没有机会截获返回并进行必要的调整


当从产品详细信息页面选择后退按钮或退出按钮时,是否有办法强制Firefox清除缓存并触发popstate?

我以前使用过这个jQuery代码,它可以跨平台工作:

$(window).bind('popstate', jQuery.proxy(function() {
    // your code here
}, this));
只要用户按下后退按钮,回调中的代码就会运行

出于安全原因,强制Firefox清除缓存不太容易。这是一个可能有效的方法(未经我测试)。但希望您可以使用这个回调来做一些其他有用的事情,比如正确设置导航状态


您可能会找到更多有用的信息。

我认为您需要一个
窗口。onunload
处理程序。请参阅其中有关bfcache的介绍