谷歌可视化(PieChart / LineChart)Jquery Ajax Firefox问题

我遇到了一个firefox的bug,并且已经搜索过了,似乎没有找到我遇到过的问题的答案。

我的程序在Chrome和IE中运行良好,但iframe图表在Firefox中无效。

我正在使用一个处理程序,然后使用jquery.ajax来获取数据并运行脚本。

jQuery.ajax({ url: jQuery(this).attr("href"), data: data, dataType: 'script' }); 

data =饼图的所有信息以及表的所有信息。 该表很好,但饼图iframe为空。 如果我按下退格按钮,则会显示饼图。 这几乎就像是在Firefox中过度拍摄。

除了我自己的数据外,数据看起来像这样。 这是从处理程序传递到ajax调用

  var data = new google.visualization.DataTable(); data.addColumn('string', 'Task'); data.addColumn('number', 'Hours per Day'); data.addRows(5); data.setValue(0, 0, 'Work'); data.setValue(0, 1, 11); data.setValue(1, 0, 'Eat'); data.setValue(1, 1, 2); data.setValue(2, 0, 'Commute'); data.setValue(2, 1, 2); data.setValue(3, 0, 'Watch TV'); data.setValue(3, 1, 2); data.setValue(4, 0, 'Sleep'); data.setValue(4, 1, 7); var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 450, height: 300, title: 'My Daily Activities'}); 

还有其他人遇到过类似的问题吗? 我知道数据传递正确并且收到了所有内容,但看起来Firefox似乎并不适合使用iframe。

如果有人有任何建议或想法,这将是伟大的

谢谢

在我阅读你的post后几个小时,问题只出现在FF我找到了解决方案。 在您的页面上导入JQuery

  

然后添加一个标签

 $(document).ready(function () { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args) { drawVisualization() } }); 

其中drawVisualization()是绘图函数。 它像魅力一样……

ps感谢你注意到FF是问题所在

我在FFox上遇到了同样的问题。

我解决了在函数中包装所有东西并用一个小的setTimeout调用它

 function drawChart() { //... } setTimeout(drawChart, 200); 

上周我和Firefox有同样的问题,两个答案的组合对我来说也很好。 不同之处在于我使用的是$ .load而不是iframe,因此我无需在AJAX中提供的jQuery中包含jQuery。

在chrome中,以下是在AJAX页面上工作的:

  

在Firefox中,这不起作用,所以我只是使用:

  

这在Chrome 22和Firefox 16.0.1中都适用于我