3

Dojo 1.6 から 1.7 へのアップグレード以降、サイト追跡コードが解決できないエラーをスローしているようです。1.61.7の API ドキュメントを比較しましたが、大きな違いは見られません。

私の元のコードは、 の終わり近くの宣言型ウィジェットでした<body>:

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

それ以来、手動でロードされたスクリプトから、このようなプログラムバージョンを試しました<head>:

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

いずれにしても、スローされるエラーは次のようになります。

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 (無名関数) dojo:15 _310

私は Dojo のカスタム ビルドを使用していますが、この問題はストック Dojo ライブラリを使用する制御環境で簡単に再現されます。JSFiddleの例を次に示します。

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

4

1 に答える 1

1

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

次のDojoリリースまでこれを回避するために、このパッチを適用できます:(ダウンロード

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);
                 }

         });
于 2012-01-06T20:33:40.243 に答える