2010-07-28 2 views
6

웹 페이지에 삽입 가능한 여러 포커스 요소가있는 Java 애플릿이 있습니다.웹 페이지의 Java 애플릿 안팎으로 이동하기

애플릿 부분의 요소를 나머지 페이지의 논리적 탭 순서로 만들 수 있습니까?

는 명확히하기 위해 : 나는 애플릿의 첫 번째 요소에 애플릿 외부 요소로부터 이동 를 사용하고 애플릿 외부 요소로 다시 이동 시프트 + 를 사용하고 싶습니다. 마찬가지로 Tab을 사용하여 애플릿의 마지막 요소에서 웹 페이지의 다음 요소로 이동하고 Shift + Tab을 사용하여 뒤로 이동하십시오.

답변

4

당신은 애플릿의 object 요소를 포함하여 요소에 tabindex 특성을 부착하여 페이지 내에서 탭 순서를 정의 할 수 있습니다. FocusTraversalPolicy class을 확장하여 애플릿 내의 탭 순서를 정의 할 수 있습니다.

의이 세 페이지 컨트롤이 있다고 가정 해 봅시다 - , BC - B - -가있는 두 번째 애플릿, 그리고 세 애플릿 컨트롤 - X, Y , , Z. 당신이 컨트롤을 를 한 경우 A는, BCtabindex1, 23 및 X, Y, 먼저 traversal 사이클의 세 번째 통해 Z, 당신의 효과적인 탭 순서가 될 것입니다 : , X, Y, Z , C.

+0

애플릿 태그의 tabIndex는 여러 브라우저에서 일관되게 작동하지 않습니다. IE7에서 필자는 애플릿에 탭할 수 있지만 탭 아웃 할 수는 없습니다. 파이어 폭스를 사용하면 애플릿으로 이동할 수는 있지만 애플릿의 컨트롤에는 초점을 두지 않습니다. Chrome은 tabIndex가 있더라도 탭 순서의 애플릿을 무시합니다. FocusTraversalPolicy에서 Z를 사용하여 애플릿 외부로 포커스를 이동시키려는 (표시를 사용하려는) 방법을 알 수 없습니다. –

+0

@Rasmus Faber : AFAIK, 당신은 아무것도 놓치지 않았습니다. 애플릿은 단순히 웹 페이지의 일부로 설계된 것이 아니라 페이지에 삽입 된 미니 애플리케이션 (따라서 이름)입니다. –

+3

애플릿이 페이지의 일부로 설계되지 않았다는 것에 동의하지 않습니다. HTML 사양에 따르면 "tabindex"는 "object"태그 에 의해 지원되어야합니다. 그래서 내가 설명한 접근법은 브라우저가 잘못 행동하지 않는 한 작동해야합니다. 불행히도, 그들은 나타납니다 - 난 그냥 전체 shebang 시도하고 브라우저간에 일관성없는 동작을 재현했다. 어떤 경우에, Rasmus, 나는 프랑스 인이 "운이 없다"라고 말할지도 모르는 것처럼 두려워합니다. – oldestlivingboy