【发布时间】:2013-05-15 12:08:29
【问题描述】:
假设我在 HTML 页面上有一个 <input> 元素。当我填写一个值,向前导航到另一个页面并返回时,通常会恢复该值:
1) 在 Firefox 中,由于 BFCache:https://developer.mozilla.org/en-US/docs/Working_with_BFCache,正在恢复整个页面状态。 (这意味着甚至正在恢复正在运行的脚本的状态。)
2) 在 Chrome 中,快速页面缓存似乎不起作用(因此页面被重置为原始状态),但输入字段的值正在保留。
现在,如果我通过脚本动态添加 <input> 字段,在 Firefox 中该值仍会恢复(因为所有内容都在恢复中)。
然而,在 Chrome 中,用于创建 <input> 字段的 Javascript 必须再次运行,因此该输入字段在引擎中显示为全新的,这意味着不会恢复任何值。
所以我的问题是:如何使用动态生成的<input>s 来实现 Chrome 的功能 2)(或者如何给 Chrome 一个关于输入字段身份的提示)。
(我对所有这些感兴趣的一个原因是建议的自定义元素:https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html。使用这个或 https://github.com/mozilla/web-components/blob/master/src/document.register.js 或 https://github.com/Polymer/CustomElements 的 polyfill 意味着将创建很多(输入)元素以编程方式并为了获得良好的用户体验,它们应该作为内置元素工作。)
【问题讨论】:
标签: html dom browser browser-cache web-component