为什么以下代码不关注过滤选择?
<!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准备好之后,或者在所有小部件都已正确初始化之后?
至于
格哈德
答案 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一点呼吸。