【问题标题】:Transform a web page with Javascript framework to a static html page将带有 Javascript 框架的网页转换为静态 html 页面
【发布时间】:2011-06-08 17:04:28
【问题描述】:

因为我需要将网页保存为报告功能的 mht 文件格式。但是,我的页面是由 Javascript 框架(dojo)和 html 源构建的,就像这样。

<div id="main">
  <div width="99%">
    <table id="contents">
      <tr> 
        <td id="con_right"></td>
      </tr>
    </table>
  </div>
</div>

同时,我还有一个控制器可以动态地将报表html设置为这些DOM对象。但我无法将此页面保存为 mht 文件。因为“另存为”只是基于静态 HTML。

所以,我需要帮助将 Javascript 中的动态 DOM 对象转换为静态 HTML 页面。

附言。 我可以包含任何其他 Javascript 框架。如果有一个好的快速的转换解决方案。

【问题讨论】:

  • 您只是希望能够保存生成的源代码吗?
  • 是的!我想保存动态生成的源。我可以在 javascript 中获取 DOM 对象,但我不知道如何将其推送到新页面以另存为 mht 文件。
  • 如果您从 Firefox 的 Web 开发人员工具栏中查看生成的源代码,它将打开一个窗口,其中包含您可以从中保存的源代码。我不确定这是否是您所说的保存,或者您的要求是否必须以编程方式进行。
  • 是的!我可以在 firebug 工具中看到所有的动态源。但我需要将页面保存为 mht 文件。此功能仅 IE 浏览器默认支持,并将使用纯静态 HTML 源保存此页面。
  • 因为这个报表系统的所有用户都不是网页开发者。我需要一个通用的解决方案。就像他们可以在浏览器菜单栏中通过 File/save as 保存报表页面并保存为 mht 格式文件一样。

标签: javascript jquery html dojo report


【解决方案1】:

Here 是一个如何打印出任何 DOM 节点的源代码的示例 - 您应该能够使用它来打印整个页面的 HTML。

编辑:您甚至可以做一些更简单的事情:

print(document.body.innerHTML);

EDIT2:

由于您希望生成的 html 是静态 html 页面,因此您要(在某种程度上)可靠地获得它的唯一方法就是通过服务器来实现。将您的 htmlified DOM 发送到后端,并使用该 html 将回调重定向到新生成的静态页面。

实现在您和您的后端软件之间,但它可以具有以下形式:

前端:

//define this function somewhere
redirectFunction( { url: '/backend/create-static-page'
                  , params: { html: document.body.innerHtml }
                  } )

后端:

function create_static_page (req, res) {
   res.send(req.html)
}

【讨论】:

  • 感谢您的参考。但我想将 DOM 对象中的所有动态 html 扩展为当前静态 html 页面以保存 mht 格式文件。
猜你喜欢
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
相关资源
最近更新 更多