다음 예제에서 하나의 경고 상자 만 표시됩니다. 나는 JavaScript 코드가 실행되기 전에 포커스가 놓여 있음을 읽었다. 이 작업을 수행 할 수있는 방법이 있습니까?입력 태그에 autofocus 속성을 사용할 때 onfocus가 호출되지 않습니다.
<input id="i" type="text" autofocus onfocus="alert(1)">
<script type="text/javascript">
document.getElementById('i').addEventListener('focus', function() {
alert(2);
}, false);
</script>
은 (난 단지 사파리에서이 테스트 한)
편집 : 내가 이런 식으로 (Prototypejs 선택) 할 분명히 할 수
var autofocusElement = $$('input[autofocus]')[0];
callListener(autofocusElement);
그러나 그것은 단지 추가에 비해 추한 모습 이벤트 리스너.
편집 :
는 자동 초점 속성에 대한 브라우저 지원의 부족을 이상 걱정하지 마십시오. 그것은 내가 아래에있는 바이올린 링크에서했던 것처럼 쉽게 해결되었습니다. 내가 볼 수있는 문제에 대한 최선의 해결책도있다. 내 질문은 수동으로 청취자를 호출하는 것보다보기 싫어서 할 수있는 경우입니다.http://jsfiddle.net/tellnes/7TMBJ/3/
그것은 자동 초점을 지원하지 않습니다 파이어 폭스 때문에 파이어 폭스 3.6에서 잘 작동합니다. 그러나 자동 초점을 지원하는 사파리에서는 이벤트가 아닙니다. HTML5 working draft에서
잘못된 바이올렛 링크? – Rahul
@Rahul 게시 된 이후 jsfiddle 사용자 이름의 이름이 변경된 것 같습니다. 링크를 업데이트했습니다. –