2011-12-27 2 views
3

Dojo 1.6から1.7へのアップグレードから、私のサイト・トラッキング・コードでは解決できないエラーが発生しているようです。私は1.61.7のAPIドキュメントを比較しており、大きな違いは見られません。Dojo 1.7以降からGoogle Analyticsを呼び出すための正しい構文は何ですか?

require(["dojox/analytics/Urchin"], function(ga) { 
    var analytics = new ga({acct: "UA-88003-8"}); 
}); 

<head>に手動でロードされたスクリプトからこのようなプログラム的なバージョンを試してみましたので、私が持っている

<div data-dojo-type="dojox.analytics.Urchin" 
    data-dojo-props='acct: "UA-88003-8"'> 
</div> 

私の元のコードは<body>の終わり近くに、宣言ウィジェットましたいずれにしても、スローされたエラーは次のようになります。

Uncaught TypeError: Object [object Object] has no method 'get' a.(anonymous function) ga.js:11 require.cache.dojox/analytics/Urchin._213.trackPageView dojo:15 require.cache.dojox/analytics/Urchin._213.GAonLoad dojo:15 require.cache.dojox/analytics/Urchin._213._gotGA dojo:15 (anonymous function) dojo:15 _310

私はDojoのカスタムビルドを使用していますが、この問題は在庫Dojoライブラリを使用して制御環境で簡単に複製されます。ここにはexample on JSFiddleがあります。

Dojo 1.7を使用してGAトラッカーオブジェクトをインスタンス化する正しい方法は何ですか?

+0

を、それはバグです。 AMDのコード変換にバグが導入されている可能性があります。 bugs.dojotoolkit.orgでレポートを提出する必要があります – peller

+1

@peller私は[バグレポートをここに提出しました](http://bugs.dojotoolkit.org/ticket/14534)。 – Caleb

答えて

1

このエラーは、dojoxコンポーネントのDojoライブラリのbugによって発生します。私の質問でオブジェクトをインスタンス化するためのコードは正しいです。

次の道場のリリースまで、この問題を回避するためには、このパッチ適用することができます:1.6でのUrchinをインスタンス化するために使用されるコードは1.7で動作しない場合(download

Index: dojox/analytics/Urchin.js 
=================================================================== 
--- dojox/analytics/Urchin.js~ 2012-01-04 17:20:46.000000000 +0200 
+++ dojox/analytics/Urchin.js 2011-08-30 23:18:13.000000000 +0300 
@@ -126,7 +126,7 @@ 
         //  |    pane.attr("href", ref); 
         //  |  }); 

-      this.tracker._trackPageview.apply(this, arguments); 
+      this.tracker._trackPageview.apply(this.tracker, arguments); 
       } 

     }); 
関連する問題