下面的代码适用于 Chrome 和 IE(8),但 firefox 说“未定义覆盖”。使用 this.overlay 或 [this.overlay] 也不起作用。是什么导致了这种差异以及如何在 Firefox 中修复它?
编码:
var ol = {
overlay: document.getElementById("overlay"),
build: function(e){
//todo: build elements dynamically
},
open: function(){
overlay.style.display = "block";
centerVertically();
ol.build();
},
close: function(){
overlay.style.display = "none";
}
};
提前致谢。
编辑: 解决方案独立工作(JSfiddle),但是当我在我的项目中使用代码时它失败了。这完全没有意义。请参阅此屏幕截图混搭: 图片链接
编辑#2:
将我的脚本标签移动到 DOM 的底部修复了所有问题。我不知道为什么我没有想到这一点。这可能是从一开始就存在的问题——Chrome 和 IE 只是更好地处理我的愚蠢,即使有关闭问题。
但是,自从收到您的回复后,我现在编写了更安全的代码,并且知道如何正确访问对象内部的对象属性。谢谢!