问题:有什么办法可以从javascript触发Webkit的自动保存功能吗?如果不通过专用API,至少是否有一种通过操作cookie来实现相同功能的方法?
背景:我真的很喜欢HTML5中新的“搜索”输入类型,并希望为启用Webkit的用户提供轻松调用其过去搜索的好处,而无需将所有这些搜索存储在数据库中(使用自动保存功能)的开销。
我遇到的问题是,仅当搜索输入封装在表单中并且该表单在提交时执行标准POST时,搜索词才被保存。由于我的搜索输入用于过滤已经存在的结果,因此完全重新加载页面没有太大的逻辑意义,因此我使用AJAX重新填充结果。如果我在AJAX函数中返回false,则界面将保持整洁且一致,但这显然不会触发POST形式(根据设计),因此浏览器(至少是Chrome)不会保存搜索字词。返回true会刷新整个页面,破坏我注入的AJAX的内容和过滤器的整个点,但是搜索词会保存。
$('#filter-form').submit(function(e) { var term = $('#filter').val(); $.ajax({ async: true, type: 'POST', url: '/Home/GetResults', data: { filter: term }, success: function(returnData) { $('#result-list').html(returnData); } }); return false; }
<form id="filter-form" name="filter-form" action="#"> <input type="search" name="filter" id="filter" results="5" autosave="EluminitePreviousFilters" /> </form> <div id="result-list"></div>
问题:有什么方法可以从javascript触发Webkit的自动保存功能吗?如果不是通过专用的API,则至少有一种方法可以通过操作...
[有一个技巧使用了连接到表单的隐藏iframe:
demo: