我有一个按钮脚本,可以根据主框架中加载的页面更改框架中的按钮。我遇到的问题是,虽然按钮(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';");
答案 0 :(得分:3)
属性和属性之间存在差异。
最好的例子如下:
<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'; });