2011-12-27 3 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); 
       } 

     }); 
관련 문제