1

好吧,这是一个奇怪的...

下面的代码片段在 Chrome、IE8 和 Safari 中运行良好。直到上周(用户告诉我......)它还在 Firefox 中运行。

它不再适用于 FF 20.0.1

var data = google.visualization.arrayToDataTable(briefData);
var chart = new google.visualization.BarChart(document.getElementById('masterstatus'));
chart.draw(data, options);
google.visualization.events.addListener(chart, 'select', function(e){
  if (chart.getSelection()[0].column && chart.getSelection()[0].row >=0){
    status = data.getValue(chart.getSelection()[0].row, 0);
    makeOwnerTable(status);
  }
}); 

发布更多代码没有什么意义——它主要是特定于上下文的东西——数百行有限的(我认为)相关性。

底线是该页面显示两个谷歌图表,一个条形图和表格图表 - 表格图表根据用户单击条形图中的条形刷新

症状...

makeOwnerTable 函数在 FF 中接收一个空字符串。在萤火虫中放一个断点

makeOwnerTable(status);

行,确认 var status = "" (Chrome 开发工具中的相同断点给出 status="foo")。进入

x = data.getValue(chart.getSelection()[0].row, 0)

在脚本暂停时在 Firebug 提示符处给我 x = "foo"。

现在通常当这种奇怪的事情发生时,我会去寻找尚未完成的野性 ajax 东西,但这里不是这种情况。

所以.. 总结一下... 在 FF 20.0.1(只有 FF 20.0.1)中,Google 的 getValue 似乎在运行时不起作用,但在 FB 提示符下起作用。

有任何想法吗?

4

1 回答 1

3

您的“状态”未声明为 var。这就是设置window.status。而这恰好在 Firefox 20 中不起作用(请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=862540)。

我建议将“var”放在那个状态变量之前,所以它是一个本地函数。

于 2013-04-22T04:11:16.197 回答