gpt4 book ai didi

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

转载 作者:技术小花猫 更新时间:2023-10-29 12:07:31 25 4
gpt4 key购买 nike

我根据数据库中的数据生成一个复杂的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com