我需要一种方法来比较javascript中可用的所有对象信息。我尝试复制window.navigator或只复制窗口(窗口);在chrome控制台中。但由于某些原因,当我想复制对象或将其转换为json时,我总是会收到错误。我一直在寻找,但我真的找不到办法。我需要的是一个函数,它可以为我提供全局可用的所有javascript变量的列表,就像这个站点browserspy.dk/showprop.php一样。这个网站列出了所有全局变量和函数,我想要相同但最好是JSON格式或任何其他原始文本格式,这使我可以轻松地比较它并找到差异。我想了解有关如何跟踪浏览器的更多信息等。我知道画布指纹识别和那些javascript变量。
我已经尝试过的是JSON.stringify(window);
,但这给了我一个
Uncaught TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
at <anonymous>:1:6
我尝试查看此错误并遇到Chrome sendrequest error: TypeError: Converting circular structure to JSON但我在尝试解决方案时仍然遇到其他错误。我不介意对象是否会错过某些数据,只要我能够比较所有不同的变量。我已经尝试过很多我在网上找到的方法,而且我一直遇到的问题是:它会抛出一个错误,或者忽略对象中的所有对象。我还需要所有信息,例如window.navigator或window.navigator.webkitGetUserMedia及其子值,如window.navigator.webkitGetUserMedia.length。如何实现这一目标?
答案 0 :(得分:0)
看到这个答案,为我工作:JSON.stringify, avoid TypeError: Converting circular structure to JSON。
在浏览器中粘贴该答案的功能,然后执行JSON.stringifyOnce(window)
答案 1 :(得分:0)
问题是,windows
对象包含属性window
,它是对window
对象的循环引用。
要获取所有密钥,您可以使用Object.keys
或Object.entries
并过滤windows
密钥。
console.log('window' in window);
console.log(Object.keys(window));