有没有办法从JavaScript访问浏览器表单字段建议?

时间:2013-07-02 10:55:27

标签: javascript html

有没有办法访问某些浏览器中HTML输入字段下显示的自动填充建议(代表以前提交的数据)?这只适用于浏览器吗?

我问我想在javascript中创建自己的自动完成实现,但我想将自己的建议与用户之前的搜索混合在一起。有点像youtube(但youtube显然存储了所有数据,并且它与登录相关联,我的网站上没有帐户,也永远不会)。

我想知道是否有办法用存储在用户浏览器中的数据来做,而不是将所有数据存储在我的服务器上。是否有办法获取浏览器用于向用户显示先前输入的数据?

3 个答案:

答案 0 :(得分:3)

  

表示以前提交的数据的html输入字段中显示的数据是否只对浏览器可用?

是 - 直到它出现在DOM中。

  

是否有办法获取浏览器用于向用户显示先前输入的数据?

这是特定于浏览器的功能,您无法直接访问数据[历史记录](Where do browsers save/store auto fill data)。你只能disable storing anything

  

我问我想在javascript中创建自己的自动完成实现,但我想将自己的建议与用户之前的搜索混合在一起。我想知道是否有办法用存储在用户浏览器中的数据来做,而不是将所有数据存储在我的服务器上。

特别是如果您想利用之前的所有搜索,浏览器的自动填充功能无论如何都无法帮助您。但是,您可以手动将它们存储在浏览器中(在客户端):使用DOM Storage,例如localStorage。虽然我只推荐sessionStorage,但如果使用浏览器的每个人都能看到以前用户的搜索字词,则可能会遇到隐私问题...

答案 1 :(得分:0)

您可以使用jstorage。 Jstorage允许您在客户端存储多达5Mb的数据。

<script src="//cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script>
<script src="https://raw.github.com/andris9/jStorage/master/jstorage.js"></script>
<script> 
/* $.jStorage is now available */ 

// store some data
$.jStorage.set('yourkey', 'whatever value');

// get the data back
value = $.jStorage.get('yourkey');

</script>

答案 2 :(得分:0)

我看到这个工作的唯一方法是在localStorage(html5)问题的帮助下,它不起作用,即&lt; 8

以下是一个示例:http://jsfiddle.net/8NZY7/