2012-06-26 18 views
0

我有一个按钮脚本,可以根据主框架中加载的页面更改框架中的按钮。我遇到的问题是,虽然背景图像,tabindex和按钮上的文本(innerHTML)都按预期更改,但onclick不会。它似乎完全忽视它。下面是我使用的脚本:为什么只有一些属性从我的javascript函数更新?

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';"); 

回答

3

是有区别的之间属性性能

的最好的例子如下:

  • HTML:<input type="text" value="hello" id="test" />
  • 类型的东西在文本框中
  • document.getElementById('test').value是不管你键入
  • document.getElementById('test').getAttribute("value")是无论是在HTML

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

例如,onClick属性接受的字符串是eval'd,但onclick属性接受函数。这就是为什么你的代码不工作。

要么通过有效功能,要么使用setAttribute

+0

虽然我明白你在这里做什么,但我不确定如何在我的情况下实现这一点。虽然onclick或onClicks不起作用,但我的问题仍然是为什么这些甚至没有写入页面而其他属性都是这样。 – megamantis

+0

因为正如我刚才所说的那样,并不是所有的属性和属性都直接相关。 –

+0

您能否提供有关如何使其工作的更多信息?我不明白我需要做什么,我在之前的评论中试图说明。 – megamantis

0

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

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

这会得到错误的“父母”。它会在发生按钮点击的框架的上下文中获得您调用'createbutton'的上下文的'parent',而不是'parent'。 –

相关问题