1

さて、ここに奇妙なものがあります...

以下のコード スニペットは、Chrome、IE8、および Safari で完全に機能します。先週まで (ユーザーから聞いた話ですが...) Firefox で動作していました。

FF 20.0.1 では機能しなくなりました

var data = google.visualization.arrayToDataTable(briefData);
var chart = new google.visualization.BarChart(document.getElementById('masterstatus'));
chart.draw(data, options);
google.visualization.events.addListener(chart, 'select', function(e){
  if (chart.getSelection()[0].column && chart.getSelection()[0].row >=0){
    status = data.getValue(chart.getSelection()[0].row, 0);
    makeOwnerTable(status);
  }
}); 

これ以上コードを投稿する意味はあまりありません-それは主にコンテキスト固有のものです-数百行の限られた(私が思うに)関連性です。

要するに、ページには棒グラフと表グラフの 2 つの Google グラフが表示されます。ユーザーが棒グラフの棒をクリックすると、表グラフが更新されます。

症状...

makeOwnerTable 関数は、FF で空の文字列を受け取ります。firebug にブレークポイントを設定する

makeOwnerTable(status);

行で、var status = "" であることを確認します (Chrome 開発ツールの同じブレークポイントは status="foo" を提供します)。入る

x = data.getValue(chart.getSelection()[0].row, 0)

スクリプトが一時停止している間に Firebug プロンプトで x = "foo" と表示されます。

通常、この種の奇妙さが続くと、未完成の野生の ajax を探しに行きますが、ここではそうではありません。

要約すると... FF 20.0.1 (および FF 20.0.1 のみ) では、Google の getValue は実行時に機能しないように見えますが、FB プロンプトでは機能します。

何か案は?

4

1 に答える 1

3

あなたの「ステータス」は変数として宣言されていません。それが設定window.statusです。そして、これはたまたま Firefox 20 では機能しません ( https://bugzilla.mozilla.org/show_bug.cgi?id=862540を参照)。

そのステータス変数の前に「var」を置くことをお勧めします。これにより、関数ローカルになります。

于 2013-04-22T04:11:16.197 に答える