javascript - 如何使动态或生成的 HTML 页面可保存?

标签 javascript html jsp dynamic dojo

我对 dojo、javascript 和 HTML 编码还是有点陌生​​。我继承了使用 dojo 1.4.2(将来会升级)和 javascript 编码的 HTML 页面的所有权。本质上,HTML 页面包含一个最初显示给用户的表单。用户填写表单并提交后,表单将替换为根据他们的回答生成的内容。

这是通过使用表单中的答案来显示或隐藏 HTML 文件中已包含的各种 div 元素来完成的。因此表单被隐藏,其他 div 元素的一些子集被显示出来。

我们希望这个生成的页面能够被用户保存为静态 HTML 页面。所以本质上我们只想将显示的 div 保存到文件而不是整个页面。目前,保存只是保存一个本地副本,这将要求用户在每个 View 上重新提交表单。

有人告诉我这可以通过将数据传递给服务(可能是 JSP)来完成,该服务将处理该数据并将其传回浏览器。但是,我对此并不熟悉,也找不到任何示例。有没有办法做到这一点,是否有人可以向我指出任何示例或文档?

理想情况下,我想插入一个保存按钮来保存在浏览器中查看的生成内容,而无需实际创建将保留在服务器上的静态 HTML。

提前致谢。

最佳答案

bookmarklet怎么样?像这样?

javascript:document.location='data:text/html,'+document.all[0].innerHTML;

它通过访问当前 DOM 的 HTML 表示来工作,然后重定向到一个新页面,该页面是使用 Data URI scheme 从 HTML 标记构建的。 .

可以使用浏览器的常规保存菜单项轻松保存新页面。请注意,相对 URL 将无法在此转换后保留下来,因此保存的页面可能会丢失其样式表/脚本/图像引用。

关于javascript - 如何使动态或生成的 HTML 页面可保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792950/

相关文章:

java - 严重 : Exception starting filter struts2 java. lang.ExceptionInInitializerError

JSP 中的 Spring null 应用程序上下文

javascript - 未触发Typeahead JS自定义事件

javascript - Chrome 扩展 - 触发器不起作用

html - 如何将 6 个 <li> 标签拉伸(stretch)到行尾?

java - HTTP 状态 500 - java.lang.LinkageError - Servlet

javascript - Blueimp 文件 uploader 正在提交多次

javascript - AJAX 函数未触发

html - 全屏可滚动包装器不兼容浏览器

javascript - 当正方形到达 Canvas 底部时会卡住