jQuery加载 - Google可视化页面

时间:2009-06-17 16:50:40

标签: javascript jquery google-visualization

我有一个带有一些链接和一个div的页面,在同一页面上我会加载其他内容。 其中一些内容是谷歌可视化图表。

就像测试一样,我弹出谷歌折线图代码。页面加载很好,但是当我尝试将它加载到div(使用jQuery)时,它不起作用。 Firefox说从google.com转移数据并没有做任何事情,IE 6有一个JS错误,说google未定义。

我不知道为什么这会出现问题,但该网页位于内部网上...如果这有助于排查问题。

提前感谢您提供任何帮助..

以下是将mainContent.html文件加载到div中的代码。

    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#A2W").click(function(){
                $("#loadContent").load("mainContent.html");
            });
        }); 
    </script>

mainContent.html的内容

<html>
  <head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["linechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Year');
        data.addColumn('number', 'Sales');
        data.addColumn('number', 'Expenses');
        data.addRows(4);
        data.setValue(0, 0, '2004');
        data.setValue(0, 1, 1000);
        data.setValue(0, 2, 400);
        data.setValue(1, 0, '2005');
        data.setValue(1, 1, 1170);
        data.setValue(1, 2, 460);
        data.setValue(2, 0, '2006');
        data.setValue(2, 1, 860);
        data.setValue(2, 2, 580);
        data.setValue(3, 0, '2007');
        data.setValue(3, 1, 1030);
        data.setValue(3, 2, 540);

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, {width: 400, height: 240, legend: 'bottom', title: 'Company Performance'});
      }
    </script>
  </head>

  <body>
    <div id="chart_div"></div>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

尝试将整个HTML页面填充到div(已经是HTML页面的一部分)中,这是一种灾难。你将完成浏览器试图弄清楚如何处理错误位置的所有事情。拿&lt; head&gt;你插入的元素,例如 - 它应该尝试将其移动吗?它不能停留在原地,因为这没有任何意义。如果它将其移动到原始&lt; html&gt;下,它是否应该替换现有的&lt; head&gt;元件?

那么&lt; body&gt;呢?它已经有一个&lt; body&gt ;;它应该扔掉吗?啊,但它不能,因为它抛弃了&lt; body&gt;在&lt; html&gt;内在&lt; div&gt; ...

我只想说当你做这样的事情时,浏览器的行为是完全未定义的,它可能只会让人绝望而且无所作为。