有没有办法保存JavaScript DOM操作?

有没有办法保存JavaScript DOM操作?,javascript,Javascript,例如,如果JavaScript对一个表执行一系列操作,那么新的HTML将无法通过View->Source看到。是否有一些方法可以捕获JavaScript操作并将所有内容保存为普通HTML文档?您可以在Firebug或IE Developer tools之类的DOM检查器中查看它您可以在Firebug或IE Developer tools之类的DOM检查器中查看它您可以使用innerHTML访问表的序列化当前状态 var table = document.getElementById("mytab

例如,如果JavaScript对一个表执行一系列操作,那么新的HTML将无法通过View->Source看到。是否有一些方法可以捕获JavaScript操作并将所有内容保存为普通HTML文档?

您可以在Firebug或IE Developer tools之类的DOM检查器中查看它

您可以在Firebug或IE Developer tools之类的DOM检查器中查看它

您可以使用
innerHTML
访问表的序列化当前状态

var table = document.getElementById("mytable");

table.innerHTML; // "<tbody><tr><td>..."

table.parentNode.innerHTML; // gets the serialization of the whole table, including the <table> tag
var table=document.getElementById(“mytable”);
table.innerHTML;//"..."
table.parentNode.innerHTML;//获取整个表(包括标记)的序列化

您可以使用
innerHTML
访问表的序列化当前状态

var table = document.getElementById("mytable");

table.innerHTML; // "<tbody><tr><td>..."

table.parentNode.innerHTML; // gets the serialization of the whole table, including the <table> tag
var table=document.getElementById(“mytable”);
table.innerHTML;//"..."
table.parentNode.innerHTML;//获取整个表(包括标记)的序列化

您可以使用
提示符(“test”,document.body.innerHTML)并复制粘贴内容。

您可以使用
提示符(“test”,document.body.innerHTML)并复制粘贴内容。

最简单的方法是调用

document.documentElement.outerHTML
这将获得与视图源相同的输出,只是它将显示所有DOM操作。但是,它可能会丢失DOCTYPE。我意识到Webkit控制台可以很好地打印doctype,但是没有用于获取doctype的公共API,因此您必须自己进行打印

可以添加到浏览器中以查看dom的小书签:

javascript:(function(){win=open(%22about:blank%22,%20%22View%20DOM%20Source%22,%20%22menubar=no,resizable=yes,status=no,toolbar=no%22);win.document.write(%22<pre>%22%20+%20document.documentElement.outerHTML.split(%22&%22).join(%22&amp;%22).split(%20%22<%22).join(%22&lt;%22).split(%22>%22).join(%22&gt;%22)%20+%20%22</pre>%22);win.focus();})()
javascript:

(抱歉,无法发布Javascript链接)。

最简单的方法是调用

document.documentElement.outerHTML
这将获得与视图源相同的输出,只是它将显示所有DOM操作。但是,它可能会丢失DOCTYPE。我意识到Webkit控制台可以很好地打印doctype,但是没有用于获取doctype的公共API,因此您必须自己进行打印

可以添加到浏览器中以查看dom的小书签:

javascript:(function(){win=open(%22about:blank%22,%20%22View%20DOM%20Source%22,%20%22menubar=no,resizable=yes,status=no,toolbar=no%22);win.document.write(%22<pre>%22%20+%20document.documentElement.outerHTML.split(%22&%22).join(%22&amp;%22).split(%20%22<%22).join(%22&lt;%22).split(%22>%22).join(%22&gt;%22)%20+%20%22</pre>%22);win.focus();})()
javascript:

(很抱歉,无法发布Javascript链接)。

我知道这个问题很老了,但我遇到了一个使用
shell.js
捕获和保存DOM操作的方法,我想如果有人感兴趣,可以在这里列出

假设所有DOM操作都已完成。 在那之后

那很简单。 我发现它非常有用,尤其是在使用
jsdom
进行node.js相关的DOM操作时(这显然不能单独保存DOM操作)


注意:这将覆盖原始文件。

我知道这个问题已经很老了,但我遇到了一个使用
shell.js
捕获和保存DOM操作的方法,我想如果有人感兴趣,可以在这里列出

假设所有DOM操作都已完成。 在那之后

那很简单。 我发现它非常有用,尤其是在使用
jsdom
进行node.js相关的DOM操作时(这显然不能单独保存DOM操作)


注意:这将覆盖原始文件。

您可以将dom检查器中的元素复制到记事本etcIE,甚至可以从开发人员工具中内置另存为html文档:-)您可以将dom检查器中的元素复制到记事本etcIE,甚至可以从开发人员工具中内置另存为html文档:-)怎么样
document.documentElement.outerHTML
?在OP的例子中,我们可以假设有一个
body
节点,但一般来说,理论上可能没有。那么
document.documentElement.outerHTML
呢?在OP的例子中,我们可以假设有一个
body
节点,但一般来说,理论上是可能的,我想,可能没有。对于最后一件事,最好使用
table.outerHTML
,而不是通过父节点,因为它也将返回同级。对于最后一件事,最好使用
table.outerHTML
,而不是通过父节点,因为它也将返回同级。