Safari 事件不会从后退按钮触发

当通过后退按钮输入页面时,我似乎无法在Safari中触发身体onload =“…”事件。 它在FF和IE中工作正常。 有Javascript或jQuery解决方案吗?

任何帮助赞赏。

尝试:

 window.addEventListener("pageshow", function() { alert('page shown'); }, false); 

对于Opera浏览器,请阅读: http : //samuli.hakoniemi.net/onload-issues-with-opera/

这是众所周知的。 Safari和许多其他浏览器缓存页面,当您导航回它时,它们只是恢复以前的状态。

这是关于这个主题的一篇很好的MDN文章(它关于FF 1.5,但也应该适用于其他浏览器): https : //developer.mozilla.org/En/Using_Firefox_1.5_caching

尝试像@zvona建议的pageshow事件。

如果未触发onload事件,则应设置缓存控制。

      

或者在正文中添加标签:

  

您可以尝试使用带有jQuery的DOM ready事件,而不是使用标记的onload属性,如下所示:

 $(document).ready(function() { // your code here }); 

或者,速记版本:

 $(function() { // your code here }); 

即使这不能解决你的Safari问题,它仍然是一个很好的做法,因为它将你的HTML和Javascript分成易于识别的部分。