0

Firefox에서 Silverlight 2 앱을 테스트 할 때 Silverlight에 포커스가있을 때 Page.KeyDown 이벤트를 통해 모든 키를 누르는 데 문제가 없습니다.Silverlight에서 브라우저 키보드 처리 오버라이드 (IE7)

Internet Explorer 7에서 테스트 할 때 브라우저에서 처리하지 않은 키보드 이벤트 만받을 수 있습니다. 그러나, 나는 자바 스크립트에서 동일한 키보드 이벤트를 무시할 수 있습니다.

예 : Ctrl + D. 다음을 수행하여 javascript에서이를 무시할 수 있지만 Silverlight에서 동일한 작업을 수행 할 수 없습니다 !!

function initKeyHandling(){ document.attachEvent("onkeydown", keydown); } 

function keydown(e) { printToTextbox('Keydown ', e); return false; } 

... 

initKeyHandling(); 

또한 자바 스크립트에서 Silverlight로 이벤트를 전달하려는 시도가 실패했습니다. Silverlight에 포커스가있을 때 자바 스크립트 키보드 이벤트 핸들러가 실행되지 않습니다.

답변

2

(적어도 당신이 언급되어 주위와 같은 자바 스크립트 작업없이) 수없는 것 같습니다 :

키보드 이벤트 및 브라우저 다른 브라우저는 다르게 키보드 이벤트를 처리 할 수 ​​있습니다. 키보드 입력을 사용하는 응용 프로그램을 만들 때 대상 브라우저에서 응용 프로그램을 테스트해야합니다.

브라우저는 어떤 키 입력을 명령으로 해석하고 어떤 키 입력이 호스트 된 콘텐츠로 전달되는지를 결정합니다. 즉, 특정 키 입력을 검색 할 수 없습니다. KeyDown 및 KeyUp 이벤트 처리기 기능. 브라우저에서 명령으로 해석하는 대부분의 키 입력은 바로 가기 키 또는 액셀러레이터 키 입력 이며 키 이벤트로 Silverlight로 전달되지 않습니다. 예를 들어 CTRL + D는 에 대한 단축키 조합이며 Firefox 및 Internet Explorer 브라우저에 즐겨 찾기 URL을 추가하고 은 CTRL도 D도 키 이벤트로보고됩니다. 내가 다른 일 기초 HTML 텍스트 상자 주위에 작품을 읽은 생각 http://msdn.microsoft.com/en-us/library/cc189015.aspx

:

은 보라. 그러나 여전히 지원되는지 또는 세부 사항이 무엇인지는 확실하지 않습니다. 내가 다시 찾으면 돌아올거야.

/asger

0

Flash를 사용하여 비슷한 문제가 발생했으며 동일한 단축키를 호출해야 할 때마다 프로그래밍 방식으로 포커스를 설정해야하는 동일한 DIV 태그가 별도로 필요했습니다. 워드 프로세서

+0

내 사용자가 언제든지 바로 가기 키를 누르면 DIV에 항상 집중해야합니다. 맞습니까? 그게 미친 소리! –

+0

문제는 Silverlight 플러그인이 항상 내 애플리케이션에 집중되어 있다는 것입니다. 숨겨진 div 태그에 포커스를 계속 설정하면 사용자는 JavaScript keyDown/Up을 전달하지 않으면 Silverlight KeyDown/Up 이벤트에 정의 된 바로 가기를 사용할 수 없습니다. 이벤트를 Silverlight로 가져온 다음 Silverlight 내부에서 처리합니다. –