如何使用 HTML 或 JavaScript 下载当前的 DOM?

Posted

技术标签:

【中文标题】如何使用 HTML 或 JavaScript 下载当前的 DOM?【英文标题】:How can I download the current DOM with HTML or JavaScript? 【发布时间】:2018-07-23 18:11:23 【问题描述】:

我创建了一个 html 文件,稍后我通过单击一个按钮使用 javascript 对其进行修改。该按钮在按下时基本上会更改 div 的内容。

现在,我在该 div 中新创建的内容中添加了一个按钮,我希望它提示“另存为”窗口 (ctrl + s) 或直接下载它。

我被限制使用任何框架或库,如 jquery。 必须是纯 html 或 javascript。

要明确:<a> 中的“下载”属性会下载对我不利的原始 DOM。

【问题讨论】:

您显然将 Stack Overflow 误认为是代码请求站点。您至少必须自己尝试一下,所以请向我们展示您已经尝试过的内容。 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只会在发布者已经尝试自己解决问题时提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask。 我在军队中,拥有自己的网络,无法从他们的计算机中取出代码。我找到的唯一解决方案是具有“下载”属性的 元素。我事先进行了研究,人们说出于安全原因,javascript无法访问文件系统。我只想知道通过代码在当前页面上执行“ctrl + s”的方式。当我终于在这里发布时,我已经尝试了 3 天的解决方案。我无法显示代码,如果这意味着我无法获得帮助,我会在其他地方尝试。还是谢谢! 您不必发布当前项目的代码。您可以在不影响项目完整性的情况下针对您尝试过的解决方案编写一些示例代码。 【参考方案1】:

javascript document.documentElement 返回根元素中的所有元素。只是不添加 html 标签或 doctype declerations。

<html>

<head>
    <title>Haha</title>
    <script>
        function test()console.log("<html>" + document.documentElement + "</html>")
    </script>
</head>
<body onload="test()">
    <div><p>Hi!</p></div>
</body>
</html>

【讨论】:

以上是关于如何使用 HTML 或 JavaScript 下载当前的 DOM?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 下载大文件

如何使用Javascript或HTML在新窗口中打开链接[重复]

如何删除 HTML5 音频标签中的下载选项?

如何使用 Javascript 下载、压缩和保存多个文件并取得进展?

如何使用 javascript 或 jquery 仅从字符串中获取所有 HTML 标记? [关闭]

如何使用 javascript 或 jquery 将 html 表单数据保存到 sql db [关闭]