【发布时间】:2011-04-19 13:34:49
【问题描述】:
我有一个页面,它会拉取一个外部 JavaScript 文件,然后它会在该页面中动态生成一些内容(主要是插入一些 DIV 和一个 Flash 对象)。
当用户离开该页面然后按下“返回”按钮时,Safari 和 Firefox 会显示生成的内容,但 IE 8 不会。
IE 在历史中保留动态内容的最佳做法是什么?还是我必须监听某些特定事件然后重新启动我的 JavaScript?
顺便说一句,我有 jQuery,所以也欢迎相关的插件建议。
编辑:这里是演示链接: http://mmstest.eenet.ee/embed/281
如果你点击底部的 Google 链接然后返回,Safari 和 FF 会再次显示视频,IE8 不会。
【问题讨论】:
-
您有可用的实时链接吗?可能是您的 IE8 设置。
-
IE 有很好的缓存。太好了,它加载了之前显示的任何内容并且不进行任何处理。尝试将缓存头设置为无缓存,也许它适合你。
-
内容是否生成并插入到 JQuery 的文档就绪事件中? 根据我的观察浏览器实现“返回”按钮的方式有所不同,但重新加载页面(通常使用缓存)是最简单且足够的(也许 IE 只这样做?)- 这意味着除非以前生成的动态内容不会再次生成,它不会显示出来。我注意到在某些情况下,Chrome 和 FF 也倾向于“保存”页面的最后状态,因此如果生成动态内容,即使是动态生成的,单击“返回”也会恢复上一个页面状态。
-
@KTF:嗯,我对 FF4 的体验是,页面加载后的更改在来回时不会保留。
-
@Marcel Korpel:我正在开发一个应用程序,就在上个星期六,我正在使用 FF 对其进行测试,我记得它保留了页面的最后一个状态,但现在我想到了他们只是表单值,所以我认为您是对的,Marcel- FF 和 Chrome 可能都是这种情况;我收回之前说过的话。不管是 AFAIK,如果动态内容生成发生在 JQuery 准备好的文档上,即使你从缓存中提取它也应该发生。
标签: javascript jquery internet-explorer-8