创建浏览器指纹

时间:2014-12-28 15:24:44

标签: javascript

我希望为我网站上的每个用户创建一个浏览器指纹。 我通过迭代winow.screen window.navigator对象属性来做到这一点。我将它们复制到一个对象。

当我使用JSON.stringify时,问题出在window.navigator.plugins我没有安装插件的文件名。该属性在那里,但不知何故没有使用JSON.stringify序列化。

该对象就像这个window.navigator.plugins [0] .filename

如何使用stringify获取所有对象内容?!

2 个答案:

答案 0 :(得分:1)

这将把它变成一个数组并从那里只提取文件名,然后可以正确地进行字符串化:

[].slice.call(navigator.plugins).map(function(plugin){return plugin.filename})
JSON.stringify([].slice.call(navigator.plugins).map(function(plugin){return plugin.filename}))

答案 1 :(得分:0)

window.navigator.plugins不是普通的JSON对象。 这是包含self值的循环JSON。 String不能将其转换为JSON.stringfy()

这里是参考

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value

我们可以使用此flattted来转换字符串或解析。