javascript - 在 HTML 页面中包含隐藏数据以供 javascript 处理

标签 javascript html embed

我根据数据库中的数据生成一个复杂的 HTML 摘要报告,它可能是数据库中大约 200,000 行的摘要。用户可以单击链接请求 Excel 版本。

当他们这样做时,JS 脚本会提取报告的关键组件并将它们填充到隐藏的 iframe 中的表单中。此表单提交给服务器端脚本,该脚本生成报告的 Excel 版本(没有图形等)。

由于报告的计算很复杂且“成本高昂”,因此不再次运行它们来创建 Excel 版本是有意义的,因为所有数据都已在页面上。此外,用户可能在报告加载后自定义了报告,我也可以使用 JS 将这些首选项传递给表单,以便 Excel 文档也反射(reflect)它们。

我这样做的方法是在 Excel 版本中为传输到一行的报告的每个组成部分包含以下内容。我劫持了一个不以其他方式使用的 HTML 标记。

   <code id="xl_row_211865_2_x" class="rowlabel">Musicals}{40%}{28.6%}{6</code>

上面的代码元素是 HTML 报告中下面一行的摘要,它成为 Excel 文档中的一行,包括标签和各种数据元素。一份报告中可能有上千个或更多这样的元素。

alt text

由于数据包含文本,我不得不使用类似 }{ 的东西作为字段分隔符,因为这不太可能出现在报告的任何实际文本中。我有code在 CSS 中设置为 display:none。

当用户想要他们报告的 Excel 版本时,JS 代码会在 HTML 中搜索任何 <code>元素并将其 className 和 innerHTML 放入表单中。 className 指示如何在 Excel 中设置行的格式,然后将数据放入 Excel 行的相邻单元格中。

alt text

HTML 报告显示一个百分比基数(它们可以在它们之间切换),但用户在请求 Excel 版本时的偏好是包括两者。

有更好的方法吗?

(因为这是复杂网络应用程序的一部分,所以没有用户会关闭 CSS 或缺少 javascript,否则他们不会走这么远) 添加:我不能使用 HTML5,因为用户通常是使用 IE6 等旧版浏览器的企业

最佳答案

使用新的数据属性

http://www.javascriptkit.com/dhtmltutors/customattributes.shtml

<div data-row="[[&quot;Musicals&quot;,40,28.6,6], ...]">

div 可以是 TD 标签或 TR 标签或任何其他已经与该行相关的相关标签," 是转义 ".

这使得数据从 View 中隐藏起来,并确保将有标准的解决方案来处理数据。

另外,对于编码数据,我建议使用 JSON因为这也是一个易于使用的标准。

关于javascript - 在 HTML 页面中包含隐藏数据以供 javascript 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4745325/

相关文章:

javascript - 从下一个元素 jQuery 中删除类

javascript - 无法在 Jasmine 测试 : undefined 中调用 $scope.form.$submitted

javascript - 使用对象文字表示法创建对象的有效 Javascript 语法是什么?

html - 从 HTML 更改 'Div' 属性

html - 电子邮件中的图像问题

java - 如何从带有嵌入标记的子文件夹中加载 Java applet 类?

javascript - 阻止 Firefox 退出延迟对象的执行

html - 堆叠图像和跨度标签彼此相邻 - bootstrap

javascript - Google 趋势嵌入和 X-Frame-Options

javascript - 嵌入的 Flash 对象不会捕捉到 Internet Explorer 上的点击(尽管 wmode)