我希望为我网站上的每个用户创建一个浏览器指纹。 我通过迭代winow.screen window.navigator对象属性来做到这一点。我将它们复制到一个对象。
当我使用JSON.stringify时,问题出在window.navigator.plugins我没有安装插件的文件名。该属性在那里,但不知何故没有使用JSON.stringify序列化。
该对象就像这个window.navigator.plugins [0] .filename
如何使用stringify获取所有对象内容?!
答案 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来转换字符串或解析。