0

例については、 http://jsfiddle.net/QJVUr/1/を参照してください。FFでは正常に動作しますが、Chrome では動作しません。

反対側。google.setOnLoadCallback の削除は Chrome では機能しますが、Firefox では機能しません: http://jsfiddle.net/RTQ5S/

妥協案はありますか?

既にロードされているため、Chrome は setOnLoadCallback を実行しないと思います。

4

2 に答える 2

0

私は2つのことを提案します:

  • 理想的には、AJAX 呼び出しはデータのみをフェッチし、このデータをコールバック関数に渡し、gviz DataTable を構築してグラフを描画します。それがどのように下がるかの例をここで見てください。
  • google.setOnLoadCallback の目的は、(これらのドキュメントによると) google ライブラリと html ページが読み込まれるまで待機して、処理が開始されるようにすることです。あなたのフィドルに基づいて、私はに置き換えwindow.addEvent('domready', function(){..});ますgoogle.setOnLoadCallback(function(){...});

うまくいけば、それが役に立ちます。上記のオプションがあなたが探しているものではないことを意味する理由があるかどうかはわかりません。その場合は、質問に詳細を記入してください。

于 2012-05-06T04:58:12.383 に答える
0

setOnCallback を使用する代わりに、ライブラリ ロードでコールバックを設定します。

http://jsfiddle.net/QJVUr/10/を参照してください

google.load('visualization', 1, {packages:['corechart'], callback: drawChart});

Google dev docs によると、ライブラリが既に読み込まれている場合、再度読み込まれることはなく、コールバックがすぐに呼び出されます。

于 2014-09-04T10:23:15.993 に答える