内联javascript无法在Internet Explorer中运行

时间:2012-08-18 03:39:32

标签: javascript internet-explorer javascript-events dreamweaver onmouseover

所以我有一个包含一些按钮(div)的DIV,每个按钮设置为onmouseover更改所有相应div的属性。我使用Dreamweaver行为来创建这个因为我在javascript上非常棒。我的问题是;它在chrome,firefox和safari中完美运行......但在Internet Explorer中没有任何作用。我知道从哪里开始。有问题的网站 here

1 个答案:

答案 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中运行良好。