0

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

就像测试一样,我弹出了谷歌折线图代码。该页面可以自行加载,但是当我尝试将其加载到 div 中(使用 jQuery)时,它不起作用。Firefox 说从 google.com 传输数据并且什么都不做,而 IE 6 有一个 JS 错误说google未定义。

我不明白为什么这会是一个问题,但该页面位于 Intranet 上...如果这有助于故障排除。

感谢您提前提供的所有帮助..

这是将 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>
4

1 回答 1

1

试图将整个 HTML 页面填充到 div 中,而 div 已经是 HTML 页面的一部分,这是灾难的根源。您将完成浏览器尝试找出如何处理所有错误位置的内容。以您刚刚插入的 <head> 元素为例 - 它应该尝试向上移动它吗?它不能停留在原地,因为这没有任何意义。如果将它移动到原来的 <html> 下,它应该替换现有的 <head> 元素吗?

那么 <body> 呢?它已经有了一个 <body>;它应该扔掉吗?啊,但它不能,因为那样它会丢弃 <div> 内的 <html> 内的 <body> ...

可以说,当你做这样的事情时,浏览器的行为是完全未定义的,它可能只是绝望地举起手,什么也不做。

于 2009-06-17T17:10:29.920 回答