2008-11-16 1 views
0

XUL 명령을 클릭하면 이벤트가 다소 다를 수 있습니다. 명령 이벤트를 사용할 때 내 함수가 호출되는 것은 아니지만XUL의 명령 이벤트에서 마우스 버튼을 누르는 방법?

는 이벤트 객체는 버튼 속성을 포함하지 않습니다.

내 질문 : 이벤트를 사용하지 않고 어떤 마우스 버튼을 감지 했습니까? 내 문제를 보여줄 수

간단한 코드 :

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 

<window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
<script language="JavaScript"> 
    var showMeTheButton=function(e) 
    { 
     alert(e.button); 
    } 
</script> 
<button onclick="showMeTheButton(event)" label="Click me with onclick"></button> 
<button oncommand="showMeTheButton(event)" label="Click me with oncommand"></button> 
</window> 

답변

2

명심해야 할 중요한 것은 oncommand이 공간을 누르면 포함 할 수있는 버튼의 활성화 결과 조치 해고된다는 것이다 막대에 포커스가있을 때 막대를 사용하거나 단추에 연결된 바로 가기 키를 사용하거나 마우스로 단추를 클릭합니다. 이벤트 처리기는 실제로 호출 된 방식을 신경 쓰지 않아도됩니다. (나는이 일관된 사용자 인터페이스를 유지하는 의식적인 결정이었다 상상한다.)

이벤트 객체에 추가되는 버튼 속성을 초래할 수있는 유일한 조치는 onclick, ondblclick, onmousedownonmouseup이다. onclick 버튼을 사용 중지하더라도 이벤트는 여전히 실행되지만 oncommand은 실행되지 않습니다.

oncommand과 동일한 기능을 사용하려면 단추를 계속 사용하면서 onclickonkeydown 이벤트를 처리해야합니다. onleftclick 또는 onmiddleclick과 같은 사용자 지정 이벤트가있는 XBL을 사용하여 사용자 지정 단추를 만들 수도 있습니다. 사용자 지정 이벤트는 설정되지 않은 경우 oncommand으로 되돌아갑니다. 그러나 시도하지는 않았습니다.