0

我有一个按钮脚本,可以根据主框架中加载的页面更改框架中的按钮。我遇到的问题是,虽然按钮(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';");
4

2 回答 2

3

属性属性之间是有区别的。

最好的例子如下:

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

一些属性直接映射到属性,反之亦然,但情况并非总是如此。

例如,onClick属性接受一个字符串,然后是eval'd,但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 回答