我读了大约10个这样的错误,但我找不到解决方案。
我在dojo中运行此代码:
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 :(得分:1)
确保您的网页上没有其他具有相同ID的DOM元素。
我通常使用以下实用程序脚本,它可以非常快速地发现这种问题,并在调试时节省一些时间。
您只需复制并粘贴到开发者控制台(它是一个自我调用函数)。
(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);
}
}
})();
&#13;
<div id="a"></div>
<div id="b"></div>
<div id="b"></div>
<div id="b"></div>
<div id="c"></div>
<div id="c"></div>
&#13;
同样在JSFiddle上: https://jsfiddle.net/gibbok/m92pdje4/