为什么只有一些属性从我的javascript函数更新?

时间:2012-06-26 16:38:21

标签: javascript

我有一个按钮脚本,可以根据主框架中加载的页面更改框架中的按钮。我遇到的问题是,虽然按钮(innerHTML)上的背景图像,tabindex和文本都按预期更改,但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';");

2 个答案:

答案 0 :(得分:3)

属性属性之间存在差异。

最好的例子如下:

  • HTML:<input type="text" value="hello" id="test" />
  • 在文本框中输入内容
  • document.getElementById('test').value是您输入的内容
  • document.getElementById('test').getAttribute("value")是HTML中的内容

某些属性直接映射到属性,反之亦然,但情况并非总是这样。

例如,onClick属性采用的字符串为eval'd,但onclick属性采用函数。这就是您的代码无效的原因。

传递有效函数,或使用setAttribute

答案 1 :(得分:0)

您正在使用字符串设置onclick,它需要一个函数来执行。

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