通过javascript使用外部js/css/图像检索整个html

通过javascript使用外部js/css/图像检索整个html,javascript,html,mhtml,Javascript,Html,Mhtml,我已经有了一个Javascript文件(执行一些功能),它将被附加到网页上。现在,我希望Javascript收集整个网页及其html标记、图像、外部Javascript文件和外部css文件我不想在这里使用Jquery/任何其他外部库。 我的动机是得到整个网页,保存它,并显示它像原来的一样 这在Javascript中是可能的吗 任何帮助都将不胜感激。简短回答-否 不,使用JavaScript是不可能的,尤其是“保存”部分,因为JavaScript在浏览器环境中没有文件访问权限(我们在这里假设),除

我已经有了一个Javascript文件(执行一些功能),它将被附加到网页上。现在,我希望Javascript收集整个网页及其html标记、图像、外部Javascript文件和外部css文件我不想在这里使用Jquery/任何其他外部库。

我的动机是得到整个网页,保存它,并显示它像原来的一样

这在Javascript中是可能的吗

任何帮助都将不胜感激。

简短回答-否 不,使用JavaScript是不可能的,尤其是“保存”部分,因为JavaScript在浏览器环境中没有文件访问权限(我们在这里假设),除非开发浏览器扩展或显式修改浏览器的安全属性以允许这样做


长长的回答-如果你真的必须的话:漫长而曲折的道路。。。 加载正确的内容 首先你需要弄清楚

加载资源 然后需要迭代DOM的所有元素,并获取所有外部资源(包括CSS文件中引用的资源)

您可能希望在请求中使用HTML或纯文本mime类型获取所有资源,否则您的浏览器可能会通过最终用户弹出窗口触发可见下载,而根本不执行透明下载

更新所有引用 接下来,您需要弄清楚如何组织“下载”的内容,将资源放在何处,以及如何命名以避免冲突

完成后,您需要再次迭代所有DOM元素,并更新引用以使用本地资源的路径,而不是本地资源的路径

将内容写入磁盘 现在,最后一点是使用浏览器的自定义API或将所有这些资源保存到磁盘


龙出没
所有这些都不能保证您将实现您想要的,因为某些页面仍然可能包含代码,这些代码一旦下载后就无法正常工作。可能有代码从远程URL请求内容,或假定某些目录结构和端点,或使用您可能已修改的资源名称,等等。。。(这可能会很奇怪,但并不少见)。

您希望整个HTML采用什么形式?是否只希望它作为HTML字符串。尝试
document.documentElement.innerHTML
。如果要在其他地方显示页面,您可能需要使用原始URL源将
添加到
。@999:我尝试了“document.documentElement.innerHTML”,但图像丢失,对齐方式糟糕。我想保存整个页面,因为它以任何有用的格式显示。通过与原始URL源一起使用to,我是否能够实现我所需要的?谢谢你的回复。