2012-06-26 2 views
0

메인 프레임에로드 된 페이지를 기반으로 프레임의 버튼을 변경하는 버튼 스크립트가 있습니다. 내가 겪고있는 문제는 배경 이미지, tabindex 및 단추의 텍스트 (innerHTML)가 모두 예상대로 변경되지만 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';"); 

답변

3

.

  • HTML : 텍스트 상자
  • document.getElementById('test').value에서 <input type="text" value="hello" id="test" />
  • 유형 뭔가 당신이
  • document.getElementById('test').getAttribute("value")는 HTML
  • 에 있었다 뭐든 입력 뭐든 다음과 같이

    이것의 가장 좋은 예입니다

일부 속성은 직접 propertie에 매핑됩니다. 그리고 그 반대의 경우도 있지만 항상 그런 것은 아닙니다.

예를 들어, onClick 속성은 eval '이라는 문자열을 사용하지만 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

잘못된 '부모'가 생깁니다. 버튼 클릭이 발생한 프레임 컨텍스트에서'parent'보다는'createbutton'을 호출하는 컨텍스트의'parent'를 가져옵니다. –

관련 문제