【JavaScript】focus()方法 您所在的位置:网站首页 js中失去焦点的方法有哪些 【JavaScript】focus()方法

【JavaScript】focus()方法

2024-07-14 12:41| 来源: 网络整理| 查看: 265

在JavaScript中,focus()虽然比较罕见,但还是比较有用的,

主要是用于获取焦点,说白了,就是自动把光标放到此组件上面,无须用户再次操作。

直接用一个例子说明问题:

self_focus window.setTimeout(function(){ window.self.focus();//仅在IE中适用 document.getElementById("text_2").focus(); }, 5000); 上述代码,设置在打开网页5秒之后,无须用户操作,focus()方法会自动将光标放到id为text_2这个文本框,在IE的运行效果如下:

在野狐禅的运行效果如下:

在IE中,window.self.focus();还会起作用。5秒后,窗口还会自动获得焦点,切换到其他窗口,或者其他程序,等5秒,IE浏览器还会自动返回到前台,成为活动窗口,而在野狐禅等其他浏览器中不适用。火狐、谷歌等为了安全性,设置浏览器无法实现控制用户行为。在其他程序应用时,让浏览器获取窗口焦点这个是无法做到的。最少在浏览器内部js无法做到。 不过对于chrome或者firefox,safari之类的浏览器可以用过Notification这个类来做一个弹出通知。然而notification必须要支持html5,太麻烦。目前要求窗口获取焦点,基本上用alert去实现。

由于IE的window.self.focus();是其作用的,不被禁止的,配合onblur()获取焦点事件,还能构造一个死循环,让IE崩溃,如下的代码:

endless_loop_blur window.self.focus(); document.getElementById("text1").focus(); function endless_loop(){ document.getElementById("text1").focus(); } 运行效果如下:

开始先在将光标放到text1这个文本框,之后马上触发对话框的onblur获取焦点事件调用endless_loop函数,继续不停地将光标放到text1这个文本框,当然此处的代码,写成self.focus()也是可以的,此处的self特指text1这个文本框。

上述死循环在野狐禅、谷歌等浏览器不适用,相当于无限的alert()被禁止一样。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有