2012-02-16 30 views
0

我已经有导出HTML表到excel的代码,但我怎么能隐藏表,并仍然使用JavaScript访问它?我如何制作一个隐藏的html表格导出?

<div id="dataExportDiv" style="display:none"> 
    <table> 
     ...table data here... 
    </table> 
</div> 

但是由此产生的excel文档没有任何数据。我试图导出没有隐藏表,它的工作原理,所以我知道导出JavaScript是有效的。

+1

也许是缺少的“关于您的ID犯太多心思之前就排除了可能性 – Akaishen 2012-02-16 18:53:08

+0

哎呦忘记关闭它在例如 – PAULDAWG 2012-02-16 18:57:26

+1

嗯......如果出口时没有'显示:。块;'但不与'display:none;'然后我会建议一个简单的CSS技巧来移动表格的方式离屏幕边远,就像你通常用下拉菜单一样,即'#dataExportDiv {position :绝对的;左:-999em;'这将视觉隐藏的DIV和它的内容,但实际上没有从什么可能是在JavaScript中的“功能”隐藏 – jmbertucci 2012-02-16 19:39:06

回答

1

您可以显示表戏外(出视口):

#parent { 
    position: relative; 
} 
table { 
    position: absolute; 
    left: -9999px; 
} 

小心,它仍然会显示如果CSS被desactivated(明显),并且将屏幕阅读器读取。
如果你显示一个图表,该表将是一个很好的替代文本他们(适当thscope="col|row"),否则他们会觉得这是一个PITA如果是3公里长。
在后一种情况下,你可以隐藏最近的屏幕阅读器的表table元素的属性aria-hidden="true"对于较老的屏幕阅读器只提供表之前跳过链接。

+0

虽然我添加了“top:-5000px”,但它不会在页面底部添加垂直空间。 – PAULDAWG 2012-02-16 20:40:03

2

你似乎缺少<div>的ID属性值后"

+0

我的例子中犯了一个错误,现在编辑它,虽然。在我的实际代码中,它已关闭。 – PAULDAWG 2012-02-16 18:58:03