如何使用javascript获取所有对象浏览器(窗口。*)信息

如何使用javascript获取所有对象浏览器(窗口。*)信息,javascript,json,object,Javascript,Json,Object,我需要一种方法来比较javascript中可用的所有对象信息。我试着复制window.navigator或只是复制window(window);在chrome控制台中。但由于某种原因,当我想要复制对象或将其转换为json时,我总是会得到一个错误。我一直在查,但我真的找不到办法。我需要的是一个函数,它可以给我一个全局可用的所有javascript变量的列表,就像这个站点一样。这个网站列出了所有的全局变量和函数,我希望它们是相同的,但最好是JSON格式或任何其他原始文本格式,这样我就可以轻松地进行比

我需要一种方法来比较javascript中可用的所有对象信息。我试着复制window.navigator或只是复制window(window);在chrome控制台中。但由于某种原因,当我想要复制对象或将其转换为json时,我总是会得到一个错误。我一直在查,但我真的找不到办法。我需要的是一个函数,它可以给我一个全局可用的所有javascript变量的列表,就像这个站点一样。这个网站列出了所有的全局变量和函数,我希望它们是相同的,但最好是JSON格式或任何其他原始文本格式,这样我就可以轻松地进行比较并找出差异。我想了解有关如何跟踪浏览器的更多信息。我知道画布指纹和那些javascript变量

我已经尝试过的是
JSON.stringify(窗口)但这给了我一个

Uncaught TypeError: Converting circular structure to JSON
    at JSON.stringify (<anonymous>)
    at <anonymous>:1:6
uncaughttypeerror:将循环结构转换为JSON

在JSON.stringify(但当我尝试解决方案时,我仍然遇到其他错误。只要我能够比较所有不同的变量,我不介意对象是否遗漏了一些数据。我已经尝试了许多在线发现的方法,但我一直遇到的问题是:它抛出错误,或者对象中的所有对象都被忽略。我还需要例如window.navigator或window.navigator.webkitGetUserMedia及其子值,如window.navigator.webkitGetUserMedia.length。如何实现这一点?

请参见此答案,为我工作:


将该答案中的函数粘贴到浏览器中,然后执行JSON。stringifyOnce(window)

您面临的问题是
windows
对象包含一个属性
window
,该属性是对
window
对象的循环引用

要获取所有密钥,可以使用或并过滤
windows
密钥

console.log(窗口中的“窗口”);

console.log(Object.keys(window));
我已经试过了,它可以工作了。你自己在window对象上试一下,然后复制结果并搜索navigator。现在通过控制台查看window.navigator。你可以在json.stringify的结果中看到,一旦只有代码,“navigator”:{},对象窗口中的对象导航器及其所有变量都不在其中。我需要一个深度克隆,而不是一个浅层克隆。这似乎是一个可行的方法,但我如何继续并将这些代码循环到每个对象中,以便我可以对窗口及其所有其他对象进行深度克隆?我对javascript非常在行C#中的y代码。object.entries看起来很有趣,但问题是这只起到了很浅的作用