焦点过滤选择页面加载

时间:2011-04-12 14:36:33

标签: javascript html internet-explorer-8 dojo setfocus


为什么以下代码不关注过滤选择?

    <!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 :(得分:0)

我不确定哪些浏览器完全支持此功能,但您可以尝试:

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

答案 1 :(得分:0)

这是非常有趣的错误..我做了小研究并找到了解决方案。也许它看起来像一个“肮脏的黑客”,但它仍然可以帮助你。

你可以简单地添加超时:

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

用户不会注意到它,但它给了IE一点呼吸。

It's work in IE8 for me