IE的onfocus取代
2010-05-10 11:59 BlueDream 阅读(1526) 评论(1) 编辑 收藏 举报本来页面有这样的需求:
一个文本框,当鼠标移上的时候,让其获得焦点,这样可以增强用户的体验,方便用户直接操作文本框.
这个需求在程序上很容易实现.我们可以几句代码搞定:
<input type="text" id="oinput" style="width:300px;height:30px;"/> <a href="http://www.baidu.com" target="_blank">Baidu</a> <script type="text/javascript"> window.onload = function() { document.getElementById('oinput').onmouseover = function() { this.focus(); } } </script>
看是很简单的程序却恰恰不那么完美.在IE浏览器下.当你在这个页面新打开一个窗口的时候.再移动到这个页面的文本框上,那么这个文本框还会focus.而导致这个页面被激活.那么用户新打开的浏览页面就会被挡在后面.那样用户会很莫名.
那么这个问题的出现.就成了一个棘手问题.所以说有时候学知识.不定哪天就会用上.前段时间写编辑器的时候用了次onbeforedeactive方法.印象里看见了个setActive方法,这个方法不会激活文档.具体见setActive
这样就解决了IE下的这个问题.
window.onload = function() { document.getElementById('oinput').onmouseover = function() { this.setActive(); } }