【问题标题】:Uncaught TypeError: Cannot read property '0' of undefined javascript error and with highcharts未捕获的类型错误:无法读取未定义 javascript 错误的属性 '0' 并使用 highcharts
【发布时间】:2014-10-15 14:27:26
【问题描述】:

直截了当,我正在下载图表的 PDF,在浏览器控制台上出现上述异常“未捕获的类型错误:无法读取未定义的属性 '0'”。

不知道为什么我会收到此错误。我还有其他下载良好的报告。但有时我会遇到这个问题。我正在运行的一段代码如下。

我正是在window[theSelectedChart].exportChart({这一行遇到了问题

谁能帮帮我。提前致谢。

if(theSelectedChart == 'somechart') {
   if(Shortform.chartType == 'bubble'){
        var maxDays = Math.max.apply(Math, Shortform.activeDays);
        var minDays = Math.min.apply(Math, Shortform.activeDays);
        window[theSelectedChart].xAxis[0].setExtremes(minDays - 1, maxDays + 1);
    } else {
         window[theSelectedChart].xAxis[0].setExtremes(0, categoriesLength);  
    }
} else { 
    window[theSelectedChart].xAxis[0].setExtremes(0, categoriesLength - 1);
}
window[theSelectedChart].exportChart({
    type: "application/pdf",
    url: 'export-chart/',
    filename: localizedShortformExportFilenames[key],
    sourceWidth:(categoriesLength * 12 > 600) ? categoriesLength * 12 : 800,
},{
    scrollbar : {
        enabled : false,
    },
    chart : {
         marginTop : getMarginTop(selectedThumbnail),
         spacingRight : 30,
    },
    title: {
         y:5,
    },
    subtitle : {
         y : 15
    },
});

【问题讨论】:

  • 看起来xAxis 可能不存在。您应该尝试使用console.logs 和断点来调试您的代码。
  • 或者localizedShortformExportFilenames 可能是未定义的。我们很难知道你给了我们什么。
  • 即使在删除了您所指向的语句之后,也失败了。不知道哪里出了问题……我有点紧张……
  • 没有足够的信息直接回答(我们只能猜测)根据错误是什么问题。在 Chrome 开发工具中,您可以跟踪(通过单击错误左侧的箭头)调用以引发该异常的函数堆栈。你能附上这样的信息吗?就像here

标签: javascript jquery highcharts


【解决方案1】:

您不应该使用“window”作为变量名。它保留用于引用您正在运行 JavaScript 和其他代码的浏览器窗口。对于您的窗口数组,请使用不同的名称,例如“windw”。

【讨论】:

  • 我不能同意:例如,myObject['stuff'] 对于具有以下结构的对象可以工作得很好:myObject = { "stuff": 1 }。正如您从问题中的代码中看到的那样 - 他的变量可以是字符串或类似 somechart 的东西 - 这意味着他只是将其用作参考,这将正常工作。
猜你喜欢
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 2016-10-15
相关资源
最近更新 更多