history.back();不会触发$(document).ready();

时间:2010-09-02 15:16:59

标签: javascript jquery javascript-events browser-history

我有一个使用$(document).ready()构建界面的网页。然后用户可以转到子页面,并返回到原始页面,他可以按下浏览器的“上一个”按钮或页面中的“返回”按钮,触发history.back();。回到原始页面,$(document).ready()未被触发,因此页面缺少信息。

有没有办法自动触发它,就像它是“真正的负载”一样?

谢谢你!

修改

在其中发出警报,警报已加速,但我的界面中缺少某些东西,就好像缺少一些就绪事件的部分一样。调查...

编辑2

hahahahaha in document.ready I click一些复选框应该是未经检查的。当我在此页面上“退回”时,会检查它们以便取消选中它们,因为我重新click

对不起,这完全是我的坏事:(

4 个答案:

答案 0 :(得分:11)

快速解决此问题,使用" onpageshow"代替。

test statement

答案 1 :(得分:7)

如果用户使用Back按钮进行导航,并且您需要完全重新加载页面,则可以设置页面的NO-CACHE政策。

这样,即使使用Back按钮,浏览器也会被迫从服务器重新加载页面。

答案 2 :(得分:3)

1。)将脚本放在页面底部。
2.)在你的上一个脚本标签中执行插件和诸如此类的东西 3.)根本不要使用onDomReady实现,这是多余的。

人们习惯于onload或ondomready,他们忽略了这样一个事实:将脚本放在页面底部几乎完全相同,无需轮询并查看你的html是否可用。

此外,这也是一种很好的做法,因为你的脚本也不会阻止html / css呈现。

不依赖于onDomReady或onLoad实现解决了很多问题。

答案 3 :(得分:1)

非常有趣的问题。当页面获得焦点或类似的东西时,您可能需要重新触发事件/功能。您可能还需要保留一个标志变量来跟踪“事件重新触发”是否有序。