问题:
有什么方法可以从 javascript 触发 Webkit 的自动保存功能?如果不通过专用 API,是否至少有一种方法可以通过操作 cookie 来完成相同的功能?
背景:
我真的很喜欢 HTML5 中新的“搜索”输入类型,并希望让支持 Webkit 的用户能够轻松地回忆他们过去的搜索,而无需在我的数据库中存储所有这些搜索的开销(使用自动保存功能)。
我遇到的问题是,搜索词似乎只有在搜索输入封装在表单中并且该表单在提交时执行标准 POST 时才会保存。由于我的搜索输入用于过滤已经存在的结果,因此完全重新加载页面没有多大逻辑意义,因此我使用 AJAX 重新填充结果。如果我在我的 AJAX 函数中返回 false,则界面是干净且一致的,但这显然不会触发 POST [by design] 表单,因此浏览器(至少 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>