【问题标题】:Force page to load even when landing by navigating back (by back-button)即使在通过导航返回(通过返回按钮)登陆时也强制页面加载
【发布时间】:2012-02-16 09:22:23
【问题描述】:

由于以下问题,我非常绝望: 到底是怎么回事 :-) .. 我可以强制我的页面每次重新加载,然后登陆它吗? 如果设置了这个值,我有一个输入,它会自动填充来自 localStorage 的文本。我的页面上有指向其他页面的链接。所以(只是一个例子)也许用户点击 pagexyz.com 然后决定通过点击后退按钮导航回我的网站。我尝试了很多东西,但无法强制执行我的一段 javascript。

here 给出的解决方案对我没有帮助。

These 没有帮助。

那么还有什么办法呢?我试过设置所有缓存相关的meta标签——页面调用时一定有办法执行js!?

非常感谢任何提示! 住家

【问题讨论】:

  • 我看不出为什么你的陈述中的问题“这些没有帮助”。不适合你吗? 为什么你试过了还是不行?
  • 看起来您正在尝试重置表单? stackoverflow.com/questions/680241/…
  • @SpaceBison:我认为是因为所有脚本和加载内容都没有执行

标签: jquery reload back-button pageload page-refresh


【解决方案1】:

问题是通过浏览器的后退按钮进行导航,页面的onload事件通常不会触发,全局范围内的JS代码也不会被执行。

一种广泛用于所谓的“哈希历史黑客”的可能解决方案:以setInterval() 开始一个间隔,每隔 500 毫秒检查一次哈希更改并根据哈希刷新内容。

在通常的内容刷新时,您必须手动设置哈希 (window.location.hash="...")。在初始页面加载(可能来自书签)时,您必须检查 window.location.hash 并相应地加载内容。

【讨论】:

  • 你拯救了我的一天,非常感谢!我实现了一个 setInterval 方法 即使在我的 $(document).ready 和测试我的输入文本的值之间。如果它是空的,我会填写 localStorage 文本。当我现在从谷歌或任何地方通过后退按钮登陆时,总是执行此方法,并在设置值时停止它。伟大的!现在我只是想了解:为什么总是执行 setInterval-function 但我没有尝试过其他 js?
  • 所有事件处理程序仍然可以工作(例如点击一个按钮仍然会触发相应的方法),并且 setInterval 函数只是另一个事件处理程序......自动而不是手动触发,但仍然
  • 非常感谢。我应该知道或者来的,但是..是个笨蛋:-)
猜你喜欢
  • 2016-04-29
  • 2011-04-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多