前端事件处理的四种方法

事件就是用户或浏览器自身执行的某种动作,比如CLICK,LOAD,MOUSEOVER等等,响应事件的函数就是事件处理函数。

1.事件处理可以直接在HTML级别写,<button οnclick="somefunction()"  />这样就可以调用在页面其他地方定义的脚本,当然也可以直接在ONCLICK后面写函数。

事件处理程序的代码在执行时,有权访问全局作用域的任何代码。

这种方式下,首先会创建一个封装着元素属性值的函数,这个函数中有个局部变量EVENT,就是事件对象。

通过EVENT对象,可以访问事件对象。并且在这种方式下,THIS的值就等于事件的目标元素,这个例子中就是点击的BUTTON。

这个函数扩展作用域的方法是这样的:

function(){

    with(document){

      with(this){

        //元素属性值

    }

  }

}

2.事件处理也可以在DOM0级实现。

这是通过JS指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属性。

每个元素,都有自己的事件处理程序属性,我们先获得元素,再设置它的事件处理程序即可。

这个时候的事件处理程序的作用域是元素的作用域,THIS就指向当前元素。

这种方式添加的函数会在事件的冒泡阶段被处理。

3.事件处理也可以在DOM2级实现。

DOM2级在DOM0级的基础上添加了更多的接口,用于事件处理的有两个方法,addEventListener()和removeEventListener()

所有DOM节点都包含这两个方法,接受三个参数,要处理的事件名,函数,和一个表示处理阶段的布尔值(TRUE表示在捕获阶段调用,FALSE表示在冒泡阶段调用)

eg: btn,addEventListener("click",funciton()'{},false);

这种方法的好处是可以添加多个函数。执行顺序就是添加的顺序:先添加先执行。

4.IE中实现了与DOM中类似的方法,attachEvent()和detachEvent(),添加的事件在冒泡阶段执行

但是这种方法下,THIS不指向元素,作用域变成全局作用域,THIS指向WINDOW了。

它的执行顺序也和DOM2级方法返回来,先添加后执行。


参考资料《JS高程》


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket是HTML5新增的协议,可以实现浏览器和服务器之间的实时双向通信,可以用于实时更新数据、实时聊天等场景。在前端实现WebSocket通信需要以下步骤: 1. 创建WebSocket对象 可以使用JavaScript的WebSocket API创建WebSocket对象,如下所示: ```js var ws = new WebSocket('ws://localhost:8080'); ``` 在创建WebSocket对象时需要传入服务器的地址,一般格式为ws://hostname:port/path,其中ws表示使用WebSocket协议,hostname表示服务器地址,port表示端口号,path表示路径。 2. 监听WebSocket事件 WebSocket对象有四个事件:onopen、onmessage、onclose和onerror。其中,onopen事件在连接建立时触发,onmessage事件在接收到服务器消息时触发,onclose事件在连接关闭时触发,onerror事件在连接出错时触发。可以通过监听这些事件来处理相应的逻辑,如下所示: ```js ws.onopen = function() { console.log('连接成功'); }; ws.onmessage = function(event) { console.log('接收到消息:' + event.data); }; ws.onclose = function() { console.log('连接关闭'); }; ws.onerror = function() { console.log('连接出错'); }; ``` 3. 发送消息 可以使用WebSocket对象的send方法发送消息,如下所示: ```js ws.send('hello'); ``` 4. 关闭连接 可以使用WebSocket对象的close方法关闭连接,如下所示: ```js ws.close(); ``` 以上就是前端实现WebSocket通信的基本步骤。需要注意的是,WebSocket协议需要服务器端支持,一般需要在服务器端实现WebSocket服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值