4

HTMLページをロードするためにAjaxコードを使用しています

例えば:

  $.ajax({
  url: 'Context.html',
  dataType: 'html',
  timeout: 500, 
  success: function(html) {
  $("div#mainbody").html(html);
  }
  });

Context.html 私は Home.html などの他の HTML ページにロードしています

しかし、Context.html で Google API を使用して円グラフを生成しています

円グラフを生成するためのコード、つまり Context.html は次のとおりです。

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
 google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Year', 'Count'],
      ['2005',  70],
      ['2006',  80],
      ['2007',  140],
      ['2008',  220],
      ['2009',  290],
      ['2010',  400],
      ['2011',  500]
    ]);

    var options = {
      title: 'Head Count-(Apple Year)',
      colors:['#129212']              
      };
 var chart = new google.visualization.ColumnChart(document.getElementById('jsf_headcount_bargraph'));
   chart.draw(data, options);
    }
  </script> 

Home.html ページに Context.html を読み込んでいるときに、Home.html に読み込んだ後、Context.html にある円グラフが見つかりません。

ALERT(""); を指定してみました。円グラフのコードを書いたスクリプトで。アラート メッセージを受け取っていたので、Ajax は JavaScript を実行していますが、同じスクリプトである円グラフを取得できません。そのため、Home.htmlページに円グラフをロードすることに行き詰まりました

4

2 に答える 2

0

このように Context.html を作ると

<script>
var j = 20;
alert();
</script>

次に、アラートを受け取ります( $.ajax({success: function() {} }) などを使用)。

[ 例 ]

function execAjax() {
    $.ajax( {
        url: 'index2.html',
        success: function( html ) {
            $("#content").html( html );

            checkJSvalue();
        },
        error: function() {
            alert( "Error" );
        }
    });
}

function checkJSvalue() {

    alert( j );
}

HTML の例 (index2.html)

<div>
content of index2.html
</div>
<script>
var j = 20;
alert();
</script>

私がやろうとしたことは、コードを「home.html」に直接配置することであり、すでにエラーが発生しています。とにかく、drawchart 関数の使用と宣言の順序を逆にする必要があります。

// Bad
// google.setOnLoadCallback(drawChart);
// function drawChart() {}

// Good
function drawChart() {}
google.setOnLoadCallback(drawChart);


それ以外は、既に google.jsapi.js (ローカルにコピー) からこのエラーを受け取りました。

Uncaught Error: Container is not defined format+nl,default,corechart.I.js:841

そこで何か問題が発生します。それは実際の質問の一部ではなく、縮小されているなどなので、そこには行きません。

これが役に立ったことを願っています:)

于 2012-10-05T09:00:37.377 に答える