фильтрация фокуса выбрать при загрузке страницы - PullRequest
0 голосов
/ 12 апреля 2011


почему следующий код не фокусирует выбор фильтра?

    <!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: - (
это может быть ошибка додзё - или я что-то не так делаю?
когда срабатывает dojo.addOnLoad ()? после того, как DOM будет готов, или после того, как все виджеты будут правильно инициализированы?
С уважением
герхард

Ответы [ 2 ]

0 голосов
/ 13 апреля 2011

Это очень интересная ошибка ... Я провел небольшое исследование и нашел решение. может быть, это выглядит как «грязный хак», но все же он может вам помочь.

Вы можете просто добавить тайм-аут:

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

Незаметно для пользователя, но дает IE возможность дышать.

Это работа в IE8 для меня

0 голосов
/ 12 апреля 2011

Я не уверен, какие браузеры полностью поддерживают это, но вы можете попробовать:

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

Кроме того, я не понимаю, почему вы используете оператор Import, если можете просто использоватьтег ссылки:

До:

<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"> 
...