我希望能够保存状态的html页面后,我已经与它互动。假设我点击了一个复选框,或者javascript设置了各个元素的值。如何保存“javascript渲染”页面?谢谢。
knpiaxh11#
在Chrome(显然还有Firefox)中,有一个特殊的copy()方法可以将渲染的内容复制到剪贴板,然后你可以将其粘贴到你喜欢的文本编辑器中。https://developers.google.com/chrome-developer-tools/docs/commandline-api#copyobject控制台示例:
copy(document.body.innerHTML);
注意:我注意到Chrome在方法运行后报告未定义,然而,它似乎正确执行,正确的内容在剪贴板中。
lx0bsm1f2#
这样就可以了,它将抓取ALL页面,而不仅仅是正文
console.log(document.getElementsByTagName('html')[0].innerHTML);
1zmg4dgp3#
document.body.innerHTML将获得当前文档正文的HTML表示。这不一定包括DOM对象的所有内部状态,因为HTML包含对象的初始默认状态,而不一定是它们可能已经更改到的状态。保证获得所有状态的唯一方法是列出要保存的状态,并实际通过编程获得该状态。为了回答你的问题中关于保存它的部分,你必须描述更多关于你真正想解决的问题。
document.body.innerHTML
kmb7vmvb4#
要获得view source的等价物并呈现javascript,包括doctype和html标记,请将命令复制到chrome控制台:
console.log(new XMLSerializer().serializeToString(document.doctype) + document.getElementsByTagName('html')[0].outerHTML);
在chrome控制台中,将鼠标悬停在输出的末尾,然后单击复制链接将其复制到粘贴板。
doinxwow5#
将以下内容粘贴到您的浏览器控制台(F12 -〉Console)会自动将一个名为rendered.html的文件保存到您的下载目录:
rendered.html
let link = document.createElement("a"); link.href = URL.createObjectURL(new Blob([document.getElementsByTagName('html')[0].innerHTML], { type: 'text/html' })); link.download = "rendered.html"; link.click(); URL.revokeObjectURL(link.href);
5条答案
按热度按时间knpiaxh11#
在Chrome(显然还有Firefox)中,有一个特殊的copy()方法可以将渲染的内容复制到剪贴板,然后你可以将其粘贴到你喜欢的文本编辑器中。
https://developers.google.com/chrome-developer-tools/docs/commandline-api#copyobject
控制台示例:
注意:我注意到Chrome在方法运行后报告未定义,然而,它似乎正确执行,正确的内容在剪贴板中。
lx0bsm1f2#
这样就可以了,它将抓取ALL页面,而不仅仅是正文
1zmg4dgp3#
document.body.innerHTML
将获得当前文档正文的HTML表示。这不一定包括DOM对象的所有内部状态,因为HTML包含对象的初始默认状态,而不一定是它们可能已经更改到的状态。保证获得所有状态的唯一方法是列出要保存的状态,并实际通过编程获得该状态。
为了回答你的问题中关于保存它的部分,你必须描述更多关于你真正想解决的问题。
kmb7vmvb4#
要获得view source的等价物并呈现javascript,包括doctype和html标记,请将命令复制到chrome控制台:
在chrome控制台中,将鼠标悬停在输出的末尾,然后单击复制链接将其复制到粘贴板。
doinxwow5#
将以下内容粘贴到您的浏览器控制台(F12 -〉Console)会自动将一个名为
rendered.html
的文件保存到您的下载目录: