对于所有主流浏览器(IE浏览器除外),onload由于后退按钮操作导致页面加载时JavaScript 事件不会触发-仅在页面首次加载时触发。
onload
有人可以指出一些解决该问题的示例跨浏览器代码(Firefox,Opera,Safari,IE等)吗?我对Firefox的pageshow事件很熟悉,但不幸的是Opera和Safari都没有实现这一功能。
pageshow
伙计们,我发现JQuery仅具有一种作用:当按下后退按钮时,页面将重新加载。这与“ ready ” 无关。
这是如何运作的?好吧,JQuery添加了一个 onunload 事件侦听器。
// http://code.jquery.com/jquery-latest.js jQuery(window).bind("unload", function() { // ...
默认情况下,它不执行任何操作。但是不管事件处理程序包含什么内容,这似乎都可以在Safari,Opera和Mozilla中触发重新加载。
[ edit(Nickolay) :这就是为什么这样工作:webkit.org,developer.mozilla.org。请阅读这些文章(或下面的单独答案中的我的摘要),并考虑是否确实需要这样做,并使用户的页面加载速度变慢。]
无法相信吗?尝试这个:
<body onunload=""><!-- This does the trick --> <script type="text/javascript"> alert('first load / reload'); window.onload = function(){alert('onload')}; </script> <a href="http://stackoverflow.com">click me, then press the back button</a> </body>
使用JQuery时,您将看到类似的结果。
您可能要与没有 onunload的* 该产品进行比较 *
<body><!-- Will not reload on back button --> <script type="text/javascript"> alert('first load / reload'); window.onload = function(){alert('onload')}; </script> <a href="http://stackoverflow.com">click me, then press the back button</a> </body>