假设我在HTML页面上有一个<input>
元素。当我填写一个值时,向前浏览到另一个页面并向后导航,通常会恢复该值:自动完成/恢复导航时动态创建的输入表单域
1)在Firefox中,由于BFCache:https://developer.mozilla.org/en-US/docs/Working_with_BFCache,整个页面状态正在恢复。 (这意味着即使正在运行的脚本的状态正在恢复。)
2)在Chrome中,快速页面缓存似乎不起作用(因此页面被重置为原始状态),但是输入字段正在保留。
现在,如果我通过脚本动态添加<input>
字段,那么在Firefox中,值仍将被恢复(因为所有内容都已恢复)。
但是,在Chrome中,创建<input>
字段的Javascript必须重新运行,以便该输入字段对引擎显示为全新的,这意味着不会恢复任何值。
所以我的问题是:如何实现Chrome的功能2)动态生成<input>
(或如何给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的polyfills意味着人会以编程方式创造了很多(输入)元素和一个良好的用户的经验,他们将正常运行内置的元素。)