javascript - 以字符串形式获取完整的 DOM 堆栈

标签 javascript dom properties

我想以字符串形式获取完整的 DOM 堆栈。例如,请打开 Chrome,按 F12 并输入“document.all”。这个对象代表完整的 DOM。我想将此对象转换为字符串。在 Chrome 中,您可以浏览对象、展开部分并在 Web 调试器控制台中查看其内容。是否有可能将 document.all 转换为字符串?或者类似的解决方案给我完整的 DOM 堆栈?我不只是想要 innerHTML/outerHTML,我想要当前 DOM 中定义的所有内容。有任何想法吗?提前致谢...

编辑:好的,我觉得我的问题有点令人困惑,对此深表歉意。澄清这一点:我想获取定义的每个对象每个属性,包括“document.location”、“document.location.hash”、“window”等内容.innerHeight”、“document.body.innerHTML”等,使用 JavaScript。

最佳答案

据我所知,没有办法获取每个对象的每个属性。

至少在某些浏览器(例如 Chrome)中,您可以使用 documentElement 上的 outerHTML 获取大部分 DOM(根元素,例如 html):

var html = document.documentElement.outerHTML;

您必须检查您的其他目标浏览器是否这样做。至少,他们将在 body 上有 innerHTML:

var bodyHTML = document.body.innerHTML;

但就其他方面而言,我认为没有任何方法可以获取每个对象的每个属性。例如,您可以像这样在 window 上找到属性:

var key;
for (key in window) {
    // ...'key' is the property name, window[key] is the value...
}

...但这只会为您提供可枚举 属性,而不是不可枚举的属性。当然,您必须递归到对象中以获取它们的属性(考虑到您可以通过不止一种方式访问​​对象这一事实——例如,window == = window.window 并且还有 top, self 等需要担心;同样对于 document.all, document.forms, ...).

很遗憾,虽然您可以获得很多您所谈论的信息,但我不相信您可以全部

关于javascript - 以字符串形式获取完整的 DOM 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17108829/

相关文章:

javascript - 如何从文本区域输入创建 $_POST 数组

javascript - 在另一个 div 中创建 div

javascript - JS 通过 ID+Class 获取元素

javascript - 如何获取 <div> 内不同元素的所有 id 属性?

javascript - 使用 underscore.js 过滤多维数组

javascript - 带有 Google API 狂热字符的 Django 和 JSON POST

Java:通过正则表达式字符串解析用元素丰富 xml

javascript - 遍历没有ID的表,存储在数组中供以后使用

c# - 在属性 setter 中执行业务规则的正确方法

c# - 将接口(interface)实现到类中时如何创建自动实现的属性?