2012-05-24 105 views
1

我創建了一個javascript函數來顯示菜單按鈕。這些按鈕由一個div容器組成,當容器啓動時,背景爲透明背景,或者當圖像背景爲down時。關於他們,我無法在IE中工作的唯一原因是翻滾。我已經嘗試過CSS類僞類,並使用onmouseover和onmouseout來改變樣式。我也嘗試改變onmouseenter和onmouseleave。我試過的所有東西都能在FF和Chrome中正常工作,但在IE中不起作用。我的代碼如下:Javascript onmouseover不會在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> 

CSS是這樣的:

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; } 

感謝您的幫助,您可以提供。 〜B

回答

1

請勿使用.setAttribute()來設置DOM元素的屬性。正如您發現的那樣,IE會感到困惑。

btnN.onclick = btn_D; 

而且你的處理程序必須功能,代碼不是簡單的片斷:

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

這個伎倆! – megamantis

1

您與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_D,作爲事件處理程序必須的功能。