IE7 css块相对位置与Javascript错误
IE7 css block relative position with Javascript bug
我有一个简单的JS脚本,当给它一个值时,它将CSS块移动到特定的路径。
您可以查看这里的代码http://jsfiddle.net/rayshinn/6DGfb/
这段代码似乎在Chrome和Firefox上运行良好,除了IE7。
我从IE得到的错误如下
Line: 27
Char:13
Error: Object doesn't support this property or method
Code: 0
URL: http://localhost/test/js/plot.js
第27行如下
marker = document.getElementById("marker");
this.setPosition(INITIAL_X, INITIAL_Y);
下面是我的完整JS脚本供您参考。
(function () {
var INITIAL_X = 550,
INITIAL_Y = 152;
// f(v) -> {"x" : x, "y" : y}
var calculatePosition = function (value) {
var result = {};
result.x = INITIAL_X - value / 9;
result.y = INITIAL_Y + 0.117 * value/ 9 ;
return result;
}
var map = {
marker : null,
value : 0,
setPosition : function (x, y) {
marker.style.left = x + "px";
marker.style.top = y + "px";
},
init : function () {
marker = document.getElementById("marker");
this.setPosition(INITIAL_X, INITIAL_Y);
},
increment : function () {
this.value++;
var result = calculatePosition(this.value);
this.setPosition(result.x, result.y);
},
decrement : function() {
this.value--;
var result = calculatePosition(this.value);
this.setPosition(result.x, result.y);
}
};
map.init();
for (var i = 0; i < 100; i++) {
map.increment();
}
})();
感谢您花时间阅读这篇文章并帮助我解决这个问题。一如既往,任何建议将不胜感激!
问题出在
marker = document.getElementById("marker");
marker
不解析为您的map
对象的属性,因为您的代码似乎期望;相反,它解析为全局对象的一个属性。但是,IE使用属性填充全局对象,这些属性的名称对应于页面中元素的id,然后不允许您覆盖这些属性。这意味着在IE中已经有一个不能被覆盖的全局marker
。
这就是为什么应该避免使用像marker
这样的隐含全局变量的一个很好的理由。最简单的修复方法是将marker
的引用更改为this.marker
:
setPosition : function (x, y) {
this.marker.style.left = x + "px";
this.marker.style.top = y + "px";
},
init : function () {
this.marker = document.getElementById("marker");
this.setPosition(INITIAL_X, INITIAL_Y);
},
相关文章:
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- 将字符串拆分为数组时出现JavaScript错误
- 处理JSON字符串会导致JavaScript错误
- 使用AJAX在剑道网格中分组时出现Javascript错误
- Ajax对web URL的调用导致javascript错误
- 为什么当我尝试在Ionic中使用列表时会出现此JavaScript错误
- 可以't解决Javascript错误
- django出现神秘的javascript错误
- JavaScript错误无效的限定符
- 使用主题运行时portlet liferay时出现Javascript错误
- 绑定函数时在IE7中未实现Javascript错误
- Javascript错误:未捕获引用错误:未定义编辑
- eventListener出现JavaScript错误
- sharepoint站点的internet explorer中出现Javascript错误
- LoadControl HttpCompileException自定义服务器控件JavaScript错误
- 销毁Bootstrap popover时出现Javascript错误
- 无法加载Javascript错误XMLHttpRequest
- 使用JSON.parse时出现无效字符javascript错误
- 修复Javascript错误
- 模板字符串上的netbeans javascript错误(backticks)