2011-04-12 9 views
0


왜 다음 코드가 filteringselect에 포커스를 맞추지 않습니다?페이지에서 포커스 필터링 선택

<!DOCTYPE html> 
    <html> 
    <head> 
    <script type="text/javascript" src="http://yandex.st/dojo/1.6.0/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script> 
    <style type="text/css"> 
      @import "http://yandex.st/dojo/1.6.0/dijit/themes/claro/claro.css"; 
    </style> 
    <script type="text/javascript"> 
    <!-- 
    dojo.require("dijit.form.FilteringSelect"); 

    dojo.addOnLoad(function(){ 
     dijit.byId('dept').focus(); 
    }); 

    --> 
    </script> 
    </head> 
    <body class="claro"> 
    <select name="dept" id="dept" dojoType="dijit.form.FilteringSelect" > 
     <option value=""></option> 
     <option value="test">test</option> 
     <option value="test1">test1</option> 
    </select> 
    </body> 
    </html> 

ie7과 firefox 3/4로 시도해 보았습니다. 작동합니다.
하지만
:-(IE8에 실패이는 도장 버그있을 수 있습니다 - 아니면 내가 뭔가 잘못하고 오전 DOM이 준비, 또는 그 이후에
는 dojo.addOnLoad() 화재는 모든 위젯이 제대로되었습니다 않습니다 후에 때? ? initalized
관련
게르하르트

답변

0

매우 버그 .. 내가 작은 연구와 발견 솔루션을 만들었습니다 기계류 그냥 링크 태그를 사용 거라고. 어쩌면 그것은 "더러운 해킹"처럼 보이지만 여전히 도움이 될 수 있습니다. 사용자가

dojo.addOnLoad(function() { 
     setTimeout(function() { dijit.byId('dept').focus() }, 400); 
}); 

에 띄지 않습니다하지만 IE를 호흡하는 순간을 제공합니다

당신은 단순히 시간 제한을 추가 할 수 있습니다. 이`select` 태그가 어떤`autofocus` 속성을 인식하지 못하는 FilteringSelect 위젯으로 대체 끝날 것 때문에

It's work in IE8 for me

+1

흥미롭게도, 이것을 시도 할 때 타임 아웃이 작동 할 때 0을 설정하는 것처럼 보입니다. 이는 준비된 프로세스가 완료 될 때까지이 코드 행을 단순히 지연시키는 것만으로 충분하다고 제안합니다. 이것이 왜 필요한지 잘 모르겠다. (그리고 IE 8에서만 볼 수있다.) Gerhard의 질문에 대답하기 위해 addOnLoad/ready 콜백은 (1) DOM이 준비된 후에 (또는 DOMContentLoaded를 지원하지 않는 IE에서 window.onload), (2) 모든 dojo.require'd 모듈을 그 포인트가로드되고 (3)'parseOnLoad'가 참이면 파서가 실행되고 위젯이 시작됩니다. –

+0

더 많은 연구가 어제 같은 결론에 도달했습니다. 나는 simmilar 버그를 찾기 위해 dojo-trac를 검색하거나 새로운 것을 작성한다. –

0

나는 이것을 완전히 지원하는 브라우저 모르겠어요,하지만 당신은 시도 할 수 있습니다 : 당신이 Import 문을 사용하는 이유 또한

<select name="dept" id="dept" dojoType="dijit.form.FilteringSelect" autofocus> 

, 내가 볼 수 없습니다 네가 갈면

하기 전에 :

<style type="text/css"> 
    @import "http://yandex.st/dojo/1.6.0/dijit/themes/claro/claro.css"; 
</style> 

후 :

<link rel="stylesheet" type="text/css" href="http://yandex.st/dojo/1.6.0/dijit/themes/claro/claro.css"> 
+0

나는, autofocus'가 영향을 미칠 것 '을 의심한다. –