2009-09-24 2 views
9

저는 사용자 정의 키보드가있는 셋톱 박스 용 웹 포털을 코딩하고 있습니다.프로그래밍 방식으로 키를 입력 필드로 보내시겠습니까?

키보드에는 대부분 표준 문자 키가 있지만 백 스페이스는 없습니다!

다른 무료 맞춤 키가 있으므로 입력 필드 또는 텍스트 영역에있을 때이 중 하나를 백 스페이스에 매핑하고 싶습니다.

질문 : 입력란에 프로그래밍 방식으로 백 스페이스를 보내는 방법은 무엇입니까?

또는 입력란에 프로그래밍 방식으로 키 (예 : 화살표 키)를 보내려면 어떻게해야합니까?

+0

죄송합니다. STB = 셋톱 박스. – KaptajnKold

답변

2

웹 브라우저를 사용하는 경우 보안상의 이유로 키보드 및 마우스 이벤트와 같은 실제 입력 이벤트를 위조 할 수 없습니다.

그러나 프레스중인 다른 사용자 지정 키를 검색 할 수 있으므로 사용하려는 키에 대해 onKeyDown 이벤트에 응답 할 수 있으며 누른 상태를 감지하면 입력 필드를 업데이트 할 수 있습니다.

+1

나는 그 일이 일어나지 않을 것을 기대했지만, 당신이 말하는 것이 사실이라면 그것이 유일한 해결책이라고 생각합니다. – KaptajnKold

+0

당신은 확실히 이벤트를 생성하고 발송할 수 있습니다. – NickFitz

0

이것은 사용자가 요구 한 것이 아니지만 Control-H는 대부분의 컨텍스트에서 백 스페이스와 동일합니다.

+0

"Control-H"가 무슨 뜻입니까, Ctrl + H를 보내시겠습니까? – erm3nda

+1

내가 사용한 적이있는 브라우저에서 Ctrl + H를 누르면 기록이 나타납니다. – PrinceTyke

-2

onkeypress와 JavaScript를 사용하십시오. 스크립트에서 입력 한 문자가 백 스페이스에 매핑되어 있는지 확인하고 필드의 텍스트에 대해 해당 작업을 수행 할 수 있습니다.

5

브라우저가 W3C 이벤트 모델을 지원한다고 가정하면 KeyEvent을 만들고 입력 필드의 dispatchEvent 메서드를 사용하여 디스패치 할 수 있습니다. mozilla.org에는 example (using MouseEvent) 이상이 있습니다. 이 where I last answered this question ;-)

UPDATE를 통해 좀 더 링크 또한 다음 코드는 파이어 폭스 3.5에서 테스트되었습니다, 그리고 성공적으로 텍스트 필드에 문자를 역행한다 :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 

<script type="text/javascript"> 

window.onload = function() { 
    var field = document.getElementById("foo"); 
    var button = document.getElementById("bar"); 
    button.addEventListener("click", function(event) { 
     var keyEvent = document.createEvent("KeyboardEvent"); 
     keyEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0); 
     field.dispatchEvent(keyEvent); 
    }, false); 
} 

</script> 

</head> 
<body> 
<div> 
<input type="text" id="foo" value="abcdef"> 
<button id="bar" type="button">Fire key event</button> 
</div> 
</body> 
</html> 
+0

니스! 고마워. – KaptajnKold

+0

아아! Opera 나 Webkit에서는 작동하지 않습니다. – KaptajnKold

+0

WebKit에서 initKeyEvent를 지원하지 않는 것처럼 보입니다. 해결 방법을 찾을 수 있는지 보겠습니다. – NickFitz

관련 문제