代理ip地址和端口
只能获取到写在HTML元素上的样式,若写在style标签中,或外联的css文件中就无法获取到了。
如何捕捉一个事件,我们讲DOM事件最终是为了编程,那么如何去捕获一个事件,如何去处理一个事件呢?
useCapture:是否在捕获阶段触发。默认是false,DOM事件处理的是冒泡过程,只有设置这个值为true,才会处理捕获过程。
当事件被触发时,会调用事件处理函数,在调用的时候会传入一些信息,这些信息代表了当前事件的一些状态,这就是事件对象。调用事件处理函数的时候,引擎会传入一个对象给我们,就是事件对象。我们在编程的时候,会用到这个事件对象的一些属性和方法。
第二行的event就是事件对象。当我们用鼠标点击的时候,这个event对象可能包含了鼠标的位置,x,y坐标等等。
,是我们当前处理事件节点的元素。适用于这样一种情况:当我们需要注册一个click事件的时候,我们不一定需要将事件注册在target上,也可以注册在target的父节点上。因为当事件冒泡到target的父节点的时候,仍然可以处理这个事件。所以,如果我们把事件注册在target的父节点上代理ip地址和端口,仍然点击target元素,event.target任然是target元素,那么currentTarget就是它的父节点这个元素。只有当事件处于目标阶段(target phase)被触发的时候,currentTarget才与target的值一样。
relatedTarget作用:当一个元素失去焦点时,另外一个元素就要获得焦点。在blur失去焦点事件中,获得焦点的元素就是这个relatedTarget;在focus获得焦点事件中,失去焦点的元素就是这个relatedTarget。
问题变为:想要给一个ul下的多个li注册同一个click事件(让背景变灰),如果li个数不多还好,如果li很多,那么为每个li都注册一遍显然太浪费了,那么怎样解决呢?
回忆我们的事件流中的事件冒泡,可以发现触发事件的元素触发了事件后,它会往上去冒泡,一直冒泡到window对象。而事件是在冒泡阶段被触发的,所以它的所有父元素也是可以接收到这个click事件被触发了的。所以如果我们把事件注册到触发事件的元素 的父元素上,它也是会执行的。因此,我们可以把事件注册在元素的父节点上来实现,可以是最近的父节点,也可以是再上层的父节点。这里我们通过在ul上注册来实现这一功能,然后通过事件处理函数中的event.target可以拿到当前触发的li元素。
:是一段小型的文本文件。大小在4kb左右。由键值对(name-value)构成,键值对中间由;和空格隔开。
虽然cookie是存储在浏览器端,但大部分时候cookie是在服务器端进行设置。服务端通过在HTTP返回的Response Headers里面通过设置set-cookie这个字段让浏览器知道需要存储的cookie。
还有一点是:即使在document.cookie中写入一个完整的cookie字符串, 当重新读取该cookie信息时,cookie信息是以名/值对的形式展示的。
间隔时间不由用户控制,由显示器的刷新频率控制,大概1s刷新60次。每次浏览器刷新会触发这个操作,不需要用户关心间隔时间,且动画更流畅,不会出现掉帧的情况。
window.location.href表示当前页面完整路径,也可以通过修改这个属性让浏览器跳转。
如果不需要验证,就在form上添加一个novalidate属性,就禁止了该表单下所有的验证。
验证表单应该在表单的submit事件被触发时进行,而不是按钮被点击时进行。因为还有其他的触发表单提交的方式。
而且从自动化测试的角度来说,因为视图层没办法完全自动化,而视图层与控制层的耦合性如此高,导致控制层也没办法做完全的自动化测试。
将视图(View)抽象成数据模型(ViewModel),后续所有的操作都针对数据模型来进行。只需要关注数据模型,不关注视图上怎样展示。