onfocusin 事件 | HTML DOM 事件对象

返回到:DOM 对象:HTML DOM 事件对象

定义和用法

onfocusin 事件在一个元素即将获得焦点时触发。

提示: onfocusin 事件类似于 onfocus 事件。 主要的区别是 onfocus 事件不支持冒泡。因此,如果你想知道元素或者其子元素是否获取焦点,需要使用 onfocusin 事件。

提示: 虽然 Firefox 浏览器不支持 onfocusin 事件, 但你可以通过使用 onfocus (使用addEventListener()方法的可选参数 useCapture)的捕获监听事件来查看元素或其子元素是否获取焦点。

提示: onfocusin 事件的相反事件是 onfocusout 事件。

浏览器支持

事件谷歌IE火狐苹果opera
onfocusinYesYes不支持YesYes

注意: 在 Chrome, Safari 和 Opera 15+ 浏览器中使用 HTML DOM 语法的 onfocusin 事件可能无法正常工作。 但是,他作为一个 HTML 元素,通过使用 addEventListener() 方法可以正常工作。

语法

HTML 中:

<element onfocusin="myScript">

JavaScript (Chrome, Safari 和 Opera 15+ 可能无法正常工作) 中:

object.onfocusin=function(){myScript};

JavaScript 中, 使用 addEventListener() 方法:

object.addEventListener("focusin", myScript);

注意: Internet Explorer 8 及更早 IE 版本不支持 addEventListener() 方法。

技术细节

是否支持冒泡:Yes
是否可以取消:No
事件类型:FocusEvent
支持的 HTML 标签:所有 HTML 元素,除了: <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>

实例

DEMO1:一起使用 “onfocusin” 和 “onfocusout” 事件。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176教程(web176.com)</title>
</head>
<body>

<p>当在 input 框输入时(获取焦点),一个函数将被触发,并设置背景颜色。当离开 input 输入框时(失去焦点),另一个函数将被触发并设置对应的背景颜色。</p>
输入您的名字: <input type="text" id="myInput" onfocusin="focusFunction()" onfocusout="blurFunction()">
<p><strong>注意:</strong> Firefox 浏览器不支持 onfocusin 事件。</p>
<script>
// 获取焦点 = 修改输入框的背景演示为黄色
function focusFunction() {
    document.getElementById("myInput").style.background = "yellow";
}
// 失去焦点 = 修改输入框的背景演示为红色
function blurFunction() {
    document.getElementById("myInput").style.background = "red";
}
</script>

</body>
</html>

DEMO2:事件委托:设置 addEventListener() 的 useCapture 参数为 true (用于获取焦点和失去焦点)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176教程(web176.com)</title>
</head>
<body>

<p>当在 input 框输入时(获取焦点,FORM表单是子元素),一个函数将被触发,并设置背景颜色为黄色。当离开 input 输入框时(失去焦点),另一个函数将被触发并移除背景颜色。</p>
<form id="myForm">
	<input type="text" id="myInput">
</form>
<script>
var x = document.getElementById("myForm");
x.addEventListener("focus", myFocusFunction, true);
x.addEventListener("blur", myBlurFunction, true);
function myFocusFunction() {
    document.getElementById("myInput").style.backgroundColor = "yellow";  
}
function myBlurFunction() {
    document.getElementById("myInput").style.backgroundColor = "";  
}
</script>

</body>
</html>

DEMO3:事件委托:使用 focusin 事件 ( Firefox 浏览器不支持)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web176教程(web176.com)</title>
</head>
<body>

<p>当在 input 框输入时(获取焦点,FORM表单是子元素),一个函数将被触发,并设置背景颜色为黄色。当离开 input 输入框时(失去焦点),另一个函数将被触发并移除背景颜色。</p>
<form id="myForm">
	<input type="text" id="myInput">
</form>
<p><strong>注意:</strong> Firefox 浏览器不支持 onfocusin 事件。</p>
<script>
var x = document.getElementById("myForm");
x.addEventListener("focusin", myFocusFunction);
x.addEventListener("focusout", myBlurFunction);
function myFocusFunction() {
    document.getElementById("myInput").style.backgroundColor = "yellow";  
}
function myBlurFunction() {
    document.getElementById("myInput").style.backgroundColor = "";  
}
</script>

</body>
</html>

作者:terry,如若转载,请注明出处:https://www.web176.com/javascriptbook/domtips/3943.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2021年10月14日 上午9:23
下一篇 2021年10月14日 上午9:36

相关推荐

发表回复

登录后才能评论