Jus*_*ner 4 html firefox jquery
为什么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>
Run Code Online (Sandbox Code Playgroud)
重现步骤:
更新:
这将迫使firefox重新加载页面:
$(window).unload(function() {});
Run Code Online (Sandbox Code Playgroud)
但是,我最终使用了这个:
window.addEventListener('pageshow', function() {alert('pageshow'); }, false);
Run Code Online (Sandbox Code Playgroud)
为什么Firefox 5.0.1在按下后退按钮时不刷新此页面?
因为它不需要.
当你在Firefox中"返回"并且Firefox可以完全从后退按钮缓冲区加载页面时,那么你要回到的不是一个新页面,而是你之前离开它的确切状态的页面,好像什么都没有介于两者之间,包括所有Javascript代码和变量的状态.就你的脚本(和jQuery)而言,ready()已经被触发了.如果jQuery已经被解雇,jQuery将不会再次触发它.
您可能想要的是收听'pageshow'事件,当从缓冲区重新加载页面时,Firefox会触发该事件,即使其状态已完全保留.