假設我在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意味着人會以編程方式創造了很多(輸入)元素和一個良好的用戶的經驗,他們將正常運行內置的元素。)