Предположим, у меня есть элемент <input>
на странице HTML. Когда я ввожу значение, перехожу на другую страницу и возвращаюсь назад, это значение обычно восстанавливается:
1) В Firefox все состояние страницы восстанавливается из-за BFCache: https://developer.mozilla.org/en-US/docs/Working_with_BFCache. (Это означает, что восстанавливается даже состояние запущенного скрипта.)
2) В Chrome кеш быстрой страницы не работает (поэтому страница сбрасывается в исходное состояние), но значения полей ввода сохраняются.
Теперь, если я добавлю поле <input>
динамически с помощью сценария, в Firefox значение все равно будет восстановлено (из-за того, что все восстанавливается).
В Chrome, однако, Javascript для создания поля <input>
должен запускаться снова, чтобы это поле ввода отображалось как совершенно новое для движка, что означает, что никакое значение не восстанавливается.
Итак, мой вопрос: как реализовать функциональность Chrome 2) с динамически генерируемыми <input>
s (или как дать 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 означает, что один собирается создать множество (входных) элементов программно, и для удобства пользователей они должны работать как встроенные элементы.)