javascript判断元素是否已经focus


focus()函数作用

focus()是获得焦点事件。
当一个文本框获得焦点时,它里面的文本就像“百度一下”首页上的百度搜索输入框那样会被自动选中,这样的操作可以利用onfocus来实现。
以下的文本框,当鼠标指针移过去时,里面的文字全部被选中:

这是怎么做的呢?看以下代码及解释:

<input type="text" name="url" value="" size="200" maxlength="255" onmousemove="this.focus();this.select();"> 

以上代码中,input标签内嵌入了onmousemove(鼠标指针经过)事件的JS语句,其等号后面的this.focus()意为其自身获得焦点;获得焦点的标志是该文本框内将出现输入光标,但要让其内的文字全部被选中,我们还得用上this.select()语句,它的意思就是选中全部文本框里的文字。

判断元素是否已经focus

document.activeElement属性始终会引用DOM中当前获得了焦点的元素。元素获得焦点的方式有用户输入(通常是按Tab键)、在代码中调用focus()方法和页面加载。先来看个小例子。

<input id="btn" type="button" value="百度一下">

window.onload = function(){
    var btn = document.getElementById("btn");

    //页面加载获取焦点
    alert(document.activeElement.id) // body

    //调用focus()方法获取焦点
    btn.focus();

    alert(document.activeElement.id) // btn
};

扩展

HTML5除了新添加了 document.activeElement属性外,还添加了document.hasFocus()方法。这个方法用于确定文档是否获得了焦点,例:

window.onload = function(){
    var btn = document.getElementById("btn");
    btn.focus();

    alert(document.hasFocus())  //true
};

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值