直接操作鼠标事件可以正常获取所触发元素的焦点,例如document.activeElement.value等。但如果我们要通过另外一个按钮事件来使某个元素获得焦点,在火狐和谷歌浏览器下测试返回获取焦点的对象是父级的body。解决方法是创建一个setTimeout将获取焦点的函数置后一小段时间执行。
function get_focus(){ setTimeout(function(){set_focus_event();}, 200); } function set_focus_event(){ //给某个元素获取焦点 ... alert(document.activeElement.value); }