0

는 사용할 수 없습니다 보이지 않기 때문에 컨트롤에 포커스를 이동 할 수 없습니다, 또는 유형 JQuery와 IE8에서 위의 오류가 발생했습니다 초점브라우저가 사용 중지 된 요소에 초점을 맞출 수 있는지 확인하는 방법은 무엇입니까?

을 허용하지 않습니다.

브라우저가 사용 중지 된 요소 (내 경우에는 input)에 초점을 맞출 수 있는지 감지하고 jQuery.support에 저장하고 싶습니다.

어떻게하면됩니까?

평범 JS 솔루션은 잘 될 것입니다,하지만 난 (등 jQuery.browser) 스니핑 브라우저를 사용하지 않습니다.

dispatchEvent()을 사용하면 좋을까요?

+0

''요소를 사용 중지하셨습니까? –

+1

컨트롤에 포커스를 설정하기 전에 컨트롤이 보이고 활성화되어 있는지 확인하고 싶지 않은 이유가 무엇입니까? –

+0

@ArsenMkrt 다른 브라우저에서는 정상적으로 작동합니다. 포커스가있는 제 3 자 콘텐츠가 표시되므로 볼 수 있는지 확인하고 싶지 않습니다. 브라우저 스니핑을하지 않으면 다른 브라우저에서 그 사용을 차단할 수 있습니다. 또한, 나는 페이지를로드 할 때 검사를 수행하고 결과를'jQuery.support'에 저장하는 것을 선호합니다. –

답변

4

그냥 try, catch (사용 금지 요소에 초점을 맞춘 것)이라고 가정하고 borks가 있으면 support에 값을 저장하십시오.

var test = $('<input disabled/>'); 
$(document.body).append(test); 
try{ 
    test.focus(); 
}catch(e){ 
    //no support, do your thing 
    //... 
} 
//clean up test element 
test.remove(); 
+0

권자. 나는 아무것도 생각할 수 없었다. 그러나 비평가들의 진노에 대한 두려움에 대한 해결책으로 게시하는 것을 두려워했다. 나중에 .. 잘 ~ .. –

+0

저 레벨로 가지 않겠습니까? 'dispatchEvent()'를 사용해 볼 수 있습니까? –

+0

@AdamLynch 왜 하위 수준으로 이동합니까? 당신은 확실히 시도 할 수는 있지만, 초점이 보이지 않는다. 이미 초점이 맞춰져있다. –

관련 문제