2012-06-26 16 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'。 –

相關問題