0

我有一个包含数据表的弹出窗口,数据完美地显示在 Firefox 和 chrome 中。

在 IE(我有 IE 9)中,我没有得到任何数据和消息“表中没有可用数据”。

如果我做

console.log(historyArray);

我确实在控制台中获取数据。

这是数据表代码,我该如何解决 IE 问题?

   myTable = $('#report').dataTable({
     "aaData": historyArray,
     "aoColumns": [{
       "mDataProp": "User"
     }, {
       "mDataProp": "Timestamp"
     }, {
       "mDataProp": "Latitude"
     }, {
       "mDataProp": "Longitude"
     }, {
       "mDataProp": "Address"
     }],
     "bPaginate": false,
     "bJQueryUI": true,
     "sDom": '<"H"Tfr>t<"F"ip>',
     "oTableTools": {
       "sSwfPath": "swf/copy_csv_xls_pdf.swf",
       "aButtons": ["copy", "csv", "xls", "pdf"]
     },
     "fnInitComplete": function () {
       addClasses();
     }
   });

修复更新

出于某种原因,数据表不想使用 window.opener 获取的数组,即使它接收正常。

我通过创建一个新数组并将值推入其中来修复它。然后将 newArray 数据提供给数据表。

 var newArray = [];
 var historyArray = window.opener.historyArray;

 for (var key in historyArray) {
   newArray.push(historyArray[key])
 }
4

2 回答 2

1

根据控制台日志,问题出在:

window.opener.closeReportWindow();

它说:

SCRIPT438: Object doesn't support property or method 'closeReportWindow' 

试试这个:

window.close();

还将您的 jQuery 更新到 1.7.2 版。

于 2012-07-11T11:36:39.060 回答
0

修复更新

出于某种原因,数据表不想使用 window.opener 获取的数组,即使它接收正常。

我通过创建一个新数组并将值推入其中来修复它。然后将 newArray 数据提供给数据表。

 var newArray = [];
 var historyArray = window.opener.historyArray;

 for (var key in historyArray) {
   newArray.push(historyArray[key])
 }
于 2012-07-11T13:22:12.083 回答