网页设计实战之JavaScript(9) -- 事件

1、事件的概念:

JavaScript可以让用户与页面交互,创建动态页面,网页中的每一个元素都可以产生触发某些事件,让系统调用用户定义JavaScript函数。事件就是可以被JavaScript侦测到的一种行为或动作。

2、事件流:

事件流是事件产生时,系统在分析处理事件时调用哪一级元素的响应函数的流程。

事件流分为冒泡型事件和捕获型事件。IE浏览器目前只支持冒泡型事件,而支持标准DOM的浏览器比如火狐、Chrome等两者都支持。

在这里插入图片描述

3、使用返回值改变HTML元素的默认行为:

HTML元素都有其自己的默认行为,例如:超链接、提交按钮等。通过在绑定事件中加上"return false"来阻止它的默认行为。

4、事件监听方法:

(1)、绑定HTML元素属性a:

<scrpit>
fucntion check(el)
{
	alert("click me");
}
</script>
<div id="aa" value="clickMe" onclick="check(this)">test click</div>

特点:
在HTML中指定事件处理程序时,存在一定的时差,用户可能在页面一出现就触发相应的事件,但是事件处理程序尚不具备执行的条件,容易出错。

事件处理程序的作用域链在不同的浏览器中会导致不同结果。不同JavaScript引擎遵循的标识符解析规则略有差异,很可能在访问非限定对象时出错。
  
HTML与JavaScript代码的紧密耦合。如果要更换事件处理程序就需要改动两个地方:JavaScript和HTML。

(2)、绑定HTML元素属性b:

把处理事件函数,写HMTL里面。

<div id="test" onclick = "this.innerHTML+= 'test';"></div>

特点:
只能写一些简单的处理。

(3)DOM0级事件处理程序(绑定DOM对象属性):

  • 绑定:
    document.getElementById(“xxx”).οnclick=事件函数;
  • 解绑定:
    document.getElementById(“xxx”).οnclick=null;
<script>
var btn = document.getElementById('button1');
btn.onclick = function () {
    alert('Clicked');
}
</script>
<button id="button1" value="test" > </button>

特点:

DOM0级事件解决了html和js代码强耦合的问题。可以动态绑定事件。

(4)DOM2级事件处理程序:

DOM2级事件处理程序定义了两个方法,用于处理指定和删除事件处理程序的操作:addEventListener和removeEventListener。所有DOM节点都包含这两个方法,并且他们接收3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。布尔值如果为true,表示在捕获阶段执行事件处理程序,如果为false,表示在冒泡阶段调用事件处理程序。

<div id="aa"  style="width: 100px;">2222</div>
<script>
	var onclick=function(e){
		alert('click');
	}
	var a=document.getElementById("button1");
	// 绑定
	 a.addEventListener("click",onclick,false);
	// 解绑定
	 a.removeEventListener("click",onclick,false); 
</script>
<button id="button1" value="test" > </button>

(5)IE8中的DOM2级事件处理程序:

<div id="aa"  style="width: 100px;">2222</div>
<script>
	var onclick=function(e){
		alert('click');
	}
	var a=document.getElementById("button1");
	// 绑定
	 a.attachEvent("onclick",onclick);
	// 解绑定
	 a.detachEvent("click",onclick); 
</script>
<button id="button1" value="test" > </button>

5、标准事件流:

(1) 、冒泡事件(从内至外)

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>标准事件流(冒泡事件)</title>
        <script type="text/javascript">
            function show(sText){
                var oDiv=document.getElementById("display");
                oDiv.innerHTML+=sText;
            }
        </script>
    </head>
    <body onclick="show('body<br>')">
        <div onclick="show('div<br>')">
            <p onclick="show('p<br>')">click me</p>
        </div>
        <div id="display"></div>
    </body>
</html>

点击后的运行结果:
p
div
body

(2)、 冒泡事件和捕获事件的比较

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>标准事件流(捕获事件和冒泡事件)</title>
        <!--IE不支持-->
        <script type="text/javascript">
            function show(sText){
                var oDiv=document.getElementById("display");
                oDiv.innerHTML+=sText;
            }

            window.onload=function(){//捕获事件,即由外到内
                var myBody=document.getElementById("myBody");
                var myDiv=document.getElementById("myDiv");
                var myP=document.getElementById("myP");
                myBody.addEventListener("click", function(){show('body<br>');}, true);//若为false则是冒泡事件
                myDiv.addEventListener("click", function(){show('div<br>');}, true);
                myP.addEventListener("click", function(){show('p<br>');}, true);
            }
        </script>
    </head>
    <body id="myBody">
        <div id="myDiv">
            <p id="myP">click me</p>
        </div>
        <div id="display"></div>
    </body>
</html>

修改addEventListener函数的第三个参数,true 和false, 可以看到冒泡事件和捕获事件的区别。

6、在事件函数中访问事件对象:

事件对象封装了事件发生的详细信息,尤其是鼠标、键盘事件。如鼠标事件发生的位置、键盘事件的键盘键等。
IE中的事件对象是一个隐式可用的全局对象:event,它是window对象的一个属性。
  //IE中得到事件对象
  op.οnclick=function(){
  var oEvent=window.event;
  }
  
在标准DOM浏览器检测发生了某个事件时,将自动创建一个Event对象,并隐式地将该对象作为事件处理函数的第一个参数传入。
  //标准DOM中得到事件对象
  op.οnclick=function(oEvent){
  //作为参数传进来
  }

7、常用的事件:

事件描述
onabort图像加载被中断
onblur元素失去焦点
onchange用户改变域的内容
onclick鼠标点击某个对象
ondblclick鼠标双击某个对象
onerror当加载文档或图像时发生某个错误
onfocus元素获得焦点
onkeydown某个键盘的键被按下
onkeypress某个键盘的键被按下或按住
onkeyup某个键盘的键被松开
onload某个页面或图像被完成加载
onmousedown某个鼠标按键被按下
onmousemove鼠标被移动
onmouseout鼠标从某元素移开
onmouseover鼠标被移到某元素之上
onmouseup某个鼠标按键被松开
onreset重置按钮被点击
onresize窗口或框架被调整尺寸
onselect文本被选定
onsubmit提交按钮被点击
onunload用户退出页面
按键精灵是一款非常强大的自动化工具,可以帮助用户完成各种重复性的操作。如果想要在按键精灵中调用Python脚本,可以按照以下步骤进行操作: 1. 首先,确保你已经在电脑上安装了Python解释器和按键精灵软件,并且已经配置好了相应的环境变量。 2. 打开按键精灵软件,点击“新建任务”按钮,创建一个新的任务。 3. 在任务编辑界面中,找到“插件”选项,点击“插件管理器”。 4. 在插件管理器中,点击“添加插件”,然后选择“脚本插件”。 5. 在脚本插件中,找到“Python脚本”选项,点击“编辑”。 6. 在Python脚本编辑界面中,可以编写自己的Python脚本代码。可以使用Python标准库或第三方库实现各种功能。 7. 编写完成后,保存脚本,然后返回任务编辑界面。 8. 在任务编辑界面中,找到你想要触发Python脚本的操作,比如点击一个按钮、输入一个文本等。 9. 针对这个操作,点击右侧的“动作设置”按钮,在弹出的界面中选择“插件动作”,然后选择刚才创建的Python脚本插件。 10. 设置完成后,保存任务,并运行它,按照你预设的操作触发Python脚本的执行。 通过以上步骤,就可以实现按键精灵调用Python脚本的功能。你可以根据具体的需求编写不同的Python脚本,实现各种自动化的操作。同时,按键精灵还可以结合其他的插件和功能,进一步扩展和优化你的自动化流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值