如何使用javascript

时间:2018-06-13 12:48:09

标签: javascript json object

我需要一种方法来比较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。如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

看到这个答案,为我工作:JSON.stringify, avoid TypeError: Converting circular structure to JSON

在浏览器中粘贴该答案的功能,然后执行JSON.stringifyOnce(window)

答案 1 :(得分:0)

问题是,windows对象包含属性window,它是对window对象的循环引用。

要获取所有密钥,您可以使用Object.keysObject.entries并过滤windows密钥。

console.log('window' in window);
console.log(Object.keys(window));