2

我正在使用ASP.NET MVC3, Razor, jQuery Mobile并有一些java scripts调用Google Chart API来绘制条形图(可视化 API)。它在桌面浏览器上运行良好,但在 Android 浏览器中出现奇怪错误而失败。

“无法读取 null 的属性 'appendchild'。”

Java 脚本代码位于“Body”元素内。以下是代码:- 我试图在没有母版页的情况下运行它,其中包含jquery mobile script文件,相同的行为,所以jquery mobile不怪。

@model System.Collections.Generic.List<Insight.CloudWeb.ViewModels.KeyFigureViewModel>
@{
ViewBag.Title = "KeyFigures";
Layout = null;

}

    google.load("visualization", "1", { packages: ["corechart","table"] });
    google.setOnLoadCallback(drawChart);

    function drawChart() {
        var data = new google.visualization.DataTable();

        @foreach (var obj in Model)
        {
            @: data.addColumn('number', '@obj.Description  @obj.Value');
        }
        i  = 0;
         data.addRows(1);

        @foreach (var obj in Model)
        {
            @: data.setCell(0, i, @obj.Value);

            @: i = i +1;
        }
        var chartBar = new google.visualization.BarChart(document.getElementById('chart_div'));
        chartBar.draw(data, { height: 340, width: 500, title: 'Key Figures', chartArea: {left: 2, top: 2}, colors:['blue','red','green','yellow','orange','purple'],legend: 'right' });
    }

</script>    
<div id='chart_div'>
</div>
<div id='table_div'>
</div>
4

1 回答 1

3

这是因为内置的 Android 浏览器不支持 SVG。(这对我来说是个令人震惊的消息)。直到 2.4 Gingerbread Android 内置浏览器不支持 SVG 图片,Google 可视化生成 SVG 图片。

SVG 支持始于 HoneyComb http://googlesystem.blogspot.com/2011/02/android-honeycombs-browser-supports-svg.html

直到 Gingerbread 不支持 SVG 图像:- http://www.mobilexweb.com/blog/android-2-3-gingerbread-the-browser

发现Opera移动浏览器在Android手机上以非常好的方式支持SVG,暂时会推荐我的客户。

于 2011-06-23T09:19:12.053 回答