1

メニューのボタンを表示するJavaScript関数を作成しました。ボタンは、上にあるときは透明な背景、下にあるときは画像の背景のいずれかを持つdivコンテナで構成されています。IEで動作させることができないのは、ロールオーバーだけです。css疑似クラスホバーを試しただけでなく、onmouseoverとonmouseoutでスタイルを変更しました。また、onmouseenterとonmouseleaveに変更してみました。私が試したものはすべて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;
}

ボタンは、本体に負荷がかかった状態でレンダリングされます。各ボタンの線は次のようになります。

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

2 に答える 2

1

DOM要素のプロパティ.setAttribute()の設定には使用しないでください。あなたが発見したように、IEは混乱します。

btnN.onclick = btn_D;

また、ハンドラーは単なるコードスニペットではなく、関数である必要があります。

btnN.onmouseover = function() { this.style.color='black'; };
于 2012-05-24T15:03:47.497 に答える
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また、イベントハンドラーは関数である必要があるため、の関数を渡していることを確認してください。

于 2012-05-24T15:06:43.643 に答える