为什么 Firefox 5.0.1 按后退按钮时不刷新此页面?
<html>
<head>
<meta http-equiv="cache-control" content="no-cache">
<script src="http://code.jquery.com/jquery-1.6.2.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() { alert('ready'); });
$(window).load(function() { alert('load'); });
</script>
</head>
<body>
<form action="http://www.google.com" method="get">
<input name="q" type="text">
<input type="submit">
</form>
</body>
</html>
重现步骤:
- 点击“提交按钮”
- 按返回
- document.ready 或 window.load 都不会触发
Update:
这将强制 Firefox 重新加载页面:
$(window).unload(function() {});
但是,我最终使用了这个:
window.addEventListener('pageshow', function() {alert('pageshow'); }, false);
为什么 Firefox 5.0.1 按后退按钮时不刷新此页面?
因为它不需要。
当你在 Firefox 中“返回”时,Firefox 可以完全从后退按钮缓冲区加载页面,那么你返回的不是一个新页面,而是回到你之前离开时的确切状态页面,就好像什么都没有发生一样发生在两者之间,其中包括所有 Javascript 代码和变量的状态。就您的脚本(和 jQuery)而言,ready() 已经触发。如果它已经被触发,jQuery 将不会再次触发它。
你可能想要的是收听“pageshow”事件,当页面从缓冲区重新加载时,Firefox 会触发该事件,即使其状态已完全保留。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)