0

メイン フレームに読み込まれたページに基づいて、フレーム内のボタンを変更するボタン スクリプトがあります。私が経験している問題は、ボタンの背景画像、タブインデックス、およびテキスト (innerHTML) はすべて期待どおりに変更されますが、onclick は変更されないことです。完全に無視しているようです。私が使用しているスクリプトは次のとおりです。

function createbutton(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.onmouseover = function() {this.style.backgroundImage = "url('./osdimages/navBG_roll.png')";};
    btnN.onmouseout = function() {this.style.backgroundImage = '';};
    btnN.tabindex = btn_I;
    btnN.innerHTML = btn_L;
    btnN.onclick = btn_D;
}

ボタン呼び出しは次のようになります。

createbutton("button01", 1, "New Order/Browse",  "parent.frames['content'].location.href='createorder/createorder.asp';");
4

2 に答える 2

3

属性プロパティには違いがあります。

これの最良の例は次のとおりです。

  • HTML:<input type="text" value="hello" id="test" />
  • テキストボックスに何か入力してください
  • document.getElementById('test').value入力したものは何でも
  • document.getElementById('test').getAttribute("value")HTMLにあったものは何でも

一部の属性はプロパティに直接マップされ、その逆も同様ですが、常にそうとは限りません。

たとえば、onClick属性は文字列を受け取りますevalが、onclickプロパティは関数を受け取ります。これが、コードが機能しない理由です。

有効な関数を渡すか、 を使用してsetAttributeください。

于 2012-06-26T16:46:13.290 に答える
0

onclick を文字列で設定しています。実行するには関数が必要です。

createbutton("button01", 1, "New Order/Browse",  function(){ parent.frames['content'].location.href='createorder/createorder.asp'; });
于 2012-06-26T16:46:19.763 に答える