dojo.exists IE11 失败

dojo.exists fails with IE11

几天以来,我在 Internet Explorer 11Domino Server 主持的 dojo toolkit 1.9.4 中遇到了麻烦。

源代码:


if (dojo.exists("btnUpload")) {
    console.log("btnUpload exist ... do something...");
} else {
    console.log("btnUpload doesn't exist...");
}

对于 IE11,dojo.exists() 的 return 值始终是 false!

IE11 调试器:


但是在所有其他浏览器(Mozilla Firefox、Google Chrome、Apple Safari)中它都有效!

为此使用 dojo.exists 不太合适,因为 btnUpload 在技术上只是一个 DOM ID,而不是全局范围内的实际对象。 if (document.getElementById('btnUpload')) 在这种情况下似乎更合适。

当遇到与实际全局变量不匹配但与 DOM ID 匹配的全局引用时,浏览器倾向于 return DOM 节点,但我不建议依赖它。