如何通过javascript自动保存HTML5搜索输入/不刷新

问题描述 投票:15回答:2

问题:有什么办法可以从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,则至少有一种方法可以通过操作...

javascript html ajax html5
2个回答
8
投票

[有一个技巧使用了连接到表单的隐藏iframe:


1
投票

demo:

© www.soinside.com 2019 - 2024. All rights reserved.