2016-10-13 2 views
0

약 10 개의 오류를 읽었지만 해결책을 찾지 못했습니다.Dojo 위젯 ID가 이미 등록되었습니다.

나는 도장에서이 코드를 실행 :

this.myHeader = registry.byId("banner"); 
// returns 'undefined' 

if(!this.myHeader) { 
    this.myHeader = new Header({ 
     primaryBannerType: 'thin' 
    }, "banner"); 
} 

내 설정이 parseOnLead: true하지만 난 어떤 파일 위젯을 구문 분석하지 않는 수동 그래서이 아무 문제가 없다 생각합니다. - 위젯이 이미로드되었는지 확인합니다. - 위젯을 두 번 구문 분석하지 않습니다.

왜이 오류가 발생합니까?

Tried to register widget with id==banner but that id is already registered 

감사

+0

안녕하세요 알렉산더 당신은 좀 더 많은 코드를 공유 할 수 ? –

+0

"헤더"에 하위 위젯이 포함되어 있습니까? 어떤 ID가 이미 등록 된 것으로보고 되었습니까? – ben

+0

'id == 배너로 위젯 등록을 시도했지만 id가 이미 등록되었습니다. ' 헤더가 IDX 툴킷의 위젯이므로 – alex

답변

1

당신이 당신의 페이지에서 동일한 ID를 가진 다른 DOM 요소가 없는지 확인합니다.

저는 보통 다음과 같은 유틸리티 스크립트를 사용합니다.이 유틸리티 스크립트는 이러한 종류의 문제를 매우 빠르게 발견하고 디버깅 할 때 약간의 시간을 절약 할 수 있습니다.

개발자 콘솔에 복사하여 붙여 넣기 만하면됩니다 (자체 호출 기능).

JSFiddle에 또한

(function() { 
 
    var elms = document.body.querySelectorAll('*[id]'), 
 
     ids = []; 
 
    for (var i = 0, len = elms.length; i < len; i++) { 
 
    if (ids.indexOf(elms[i].id) === -1) { 
 
     ids.push(elms[i].id); 
 
    } else { 
 
     console.log('Multiple IDs #' + elms[i].id); 
 
    } 
 
    } 
 
})();
<div id="a"></div> 
 
    <div id="b"></div> 
 
    <div id="b"></div> 
 
    <div id="b"></div> 
 
    <div id="c"></div> 
 
    <div id="c"></div>

는 : https://jsfiddle.net/gibbok/m92pdje4/

+0

당신의 도움에 대해 대단히 감사합니다. 나는 이미 우연히 해결책을 찾았습니다. 나는 많은 ID를 이름을 바꾸었고 이런 식으로 문제를 해결하기를 희망했습니다 ^^ – alex

+0

@ 알렉스 대단한! 내 대답은 당신을 도왔다 기쁩니다. 내 대답을 찾으면 유용합니다 또는 최대 내 대답을 투표 :) :) - 대답을 받아들이려면 왼쪽에있는 틱 아이콘을 클릭하십시오. – GibboK

+0

예, 당신이 그것을 원한다면 xD – alex

관련 문제