0

他のコンテンツをロードするのと同じページに、いくつかのリンクとdivを含むページがあります。そのコンテンツの一部は、Googleの視覚化チャートです。

テストとして、Googleの折れ線グラフのコードを入力しました。ページはそれ自体でうまくロードされますが、(jQueryを使用して)divにロードしようとすると、機能しません。Firefoxはgoogle.comからデータを転送すると言って何もしません、そしてIE6にgoogleは未定義と言っているJSエラーがあります。

これが問題になる理由はわかりませんが、ページはイントラネット上にあります...これがトラブルシューティングに役立つ場合。

事前にすべての助けをありがとう。

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に詰め込もうとすることは、すでにHTMLページの一部であり、災害のレシピです。間違った場所にあるすべてのものをどうするかをブラウザが理解しようとすることで終わります。たとえば、挿入したばかりの<head>要素を取り上げます。それを上に移動しようとする必要がありますか?それは意味がないので、それはそれがどこにあるかを保つことができません。元の<html>の下に移動する場合、既存の<head>要素を置き換える必要がありますか?

では、<body>についてはどうでしょうか。すでに<body>があります。それを捨てるべきですか?ああ、でもそれはできません。なぜなら、それは<div>内の<html>内の<body>を捨ててしまうからです...

このようなことをしたときのブラウザの動作は完全に定義されておらず、おそらく絶望して手を上げて何もしません。

于 2009-06-17T17:10:29.920 に答える