所以我有一个包含一些按钮(div)的DIV,每个按钮设置为onmouseover更改所有相应div的属性。我使用Dreamweaver行为来创建这个因为我在javascript上非常棒。我的问题是;它在chrome,firefox和safari中完美运行......但在Internet Explorer中没有任何作用。我知道从哪里开始。有问题的网站 here
答案 0 :(得分:0)
所以你的问题在于这个功能:
function MM_changeProp(objId,x,theProp,theValue) { //v9.0
var obj = null; with (document){ if (getElementById)
obj = getElementById(objId); }
if (obj){
if (theValue == true || theValue == false)
eval("obj.style."+theProp+"="+theValue);
else eval("obj.style."+theProp+"='"+theValue+"'");
}
}
具体来说,这一行:
else eval("obj.style."+theProp+"='"+theValue+"'");
当您尝试更改backgroundImage
属性时,IE8最终会窒息,它会尝试进行评估:
obj.style.backgroundImage=' url(../images/homepointer1.png)'
并抛出
SCRIPT87: Invalid argument.
我认为这是因为您在值中有一个额外的空格,并且没有在URL字符串周围使用引号。基本上你的代码中有这样的东西:
' url(../images/homepointer2.png)'
你需要修复它,看起来像这样:
'url("../images/homepointer2.png")'
我没有一种简单的方法来验证这一点,所以修复可能不对,但它肯定是你的问题所在。顺便说一句,它只在IE7 / IE8中被破坏,它在IE9中运行良好。