JavascriptonMouseover不';不要在IE中触发

JavascriptonMouseover不';不要在IE中触发,javascript,internet-explorer,onmouseover,Javascript,Internet Explorer,Onmouseover,我创建了一个javascript函数来显示菜单的按钮。按钮由一个div容器组成,向上时为透明背景,向下时为图像背景。关于他们,我唯一不能在IE中工作的就是翻车。我尝试了css伪类hover,并使用onmouseover和onmouseout更改了样式。我还尝试了更改为onmouseenter和onmouseeve。我尝试过的所有东西在FF和Chrome中都可以正常工作,但在IE中无法正常工作。我的代码如下: function createOSDbutton(btn_N, btn_I, btn_L

我创建了一个javascript函数来显示菜单的按钮。按钮由一个div容器组成,向上时为透明背景,向下时为图像背景。关于他们,我唯一不能在IE中工作的就是翻车。我尝试了css伪类hover,并使用onmouseover和onmouseout更改了样式。我还尝试了更改为onmouseenter和onmouseeve。我尝试过的所有东西在FF和Chrome中都可以正常工作,但在IE中无法正常工作。我的代码如下:

function createOSDbutton(btn_N, btn_I, btn_L, btn_D) // (Div Name, Tab Index, Button Text, Page To Load)
{
var btnN = top.frames['buttonbar'].document.getElementById(btn_N);

btnN.style.cssText = "display:block; cursor:pointer; padding-left:16px; padding-top:5px;";
btnN.setAttribute("onClick", btn_D);
btnN.setAttribute("onMouseOver", "this.style.color='black'");
btnN.setAttribute("onMouseOut", "this.style.color='white'");
btnN.setAttribute("tabindex", btn_I);
btnN.innerHTML = btn_L;
}
这些按钮在主体中呈现为onload。每个按钮的行如下所示:

createOSDbutton("button01", 1, "Customer Login", "parent.frames['content'].location.href='./custlogin/custlogin.asp';");
HTML如下所示:

<div id="button01" class="osdmenu b1 myriad"></div>
div.osdmenu {background-color:transparent; font-size:9pt; width:201px; height:30px; vertical-align:middle; padding-left:16px; padding-top:5px;}
.myriad {font-family: "myriad", arial, helvetica, sans-serif;}
div.b1  {position:absolute;top:120px; }

不要使用
.setAttribute()
设置DOM元素的属性。正如你所发现的那样

btnN.onclick = btn_D;
此外,处理程序必须是函数,而不仅仅是代码片段:

btnN.onmouseover = function() { this.style.color='black'; };

您正在使用
setAttribute
设置属性,这在IE中不起作用

btnN.onclick = btn_D;
btnN.onmouseover = function () { this.style.color='black'; };
btnN.onmouseout = function () { this.style.color='white'; };
btnN.tabindex = btn_I;
另外,请确保您正在为
btn\u D
传递函数,因为事件处理程序必须是函数