基础库
标签库(按字母排序)
属性扩展
对 IMG 标签的扩展暂时不是为了图片服务······ 而是为了方便与后端交互数据。
相关文件
可以理解为由图片触发的服务器端的数据交互,主要用来记录数据。可以理解为是页面三个主要事件onready
、onpost
和onload
(见 Document 全局事件)的补充。
对 IMG 的主要扩展有 2 个服务器端事件和 1 个调试相关属性。
onload+
当图片加载完成后触发,对应客户端事件onload
。onerror+
当图片加载失败时触发,对应客户端事件onerror
。debug
当设置这个属性时,会在调试时输出后端请求的状态信息。除此之外,原所有客户端事件现在都支持精简事件表达式,所有原生属性都支持增强属性设置。
两个服务器端事件现在都有自己的 4 个状态事件,如onload+success
、onerror+exception
等,详见服务器端事件监听。
IMG 标签的原有onload
事件在图片加载完之后触发,如果没有设置loading
属性为lazy
,则一般在 document 的onready
事件之前触发。而onload+
事件在 document 的 onpost
事件之后才触发。而且,也不能设置 src
属性,否则onload+
事件不会触发,但是要设置src+
属性。
各属性和事件分别解释如下:
src+
属性由增强属性提供支持,支持比原生属性更多的特性。如果用不到增强属性的特性,这里设置成原有属性的值(图片地址)即可。但是这个src+
属性必须设置,而且不能设置成原生属性src
。因为src
属性只能触发客户端事件onload
,而不能触发服务器端事件onload+
。这个逻辑仅针对这个 IMG 标签,其他标签不存在这个问题。onload
。onload+
在客户端事件onload
之后触发,一般用来向后端发送数据。onload+success
及其他与onload+
相关的状态事件在onload+
事件执行完且数据结果从后端返回时触发。IMG 标签原有的onerror
当图片加载出错时触发,如地址不存在、网络错误、非法访问等。如果只是用来向后端发送数据,则只用onerror+
即可,而不需要用onload+
。
与onload+
事件不同,onerror+
事件不需要设置src
和src+
属性,如果设置了反而要设置一个不存在的地址才能触发onerror
,不仅执行的顺序不对,也不会触发onerror+
事件。客户端事件onerror
在 document 的onready
事件之后onpost
和onload
事件之前触发,而服务器端事件onerror+
在 document 的onpost
事件之后触发。
各属性和事件分别解释如下:
src
和src+
属性,因为我们的目的是让 IMG 标签出错。即使我们设置了一个错误的图片地址,也不会触发onerror+
事件,而且控制台会报图片地址错误。不设置src
属性则不会报错。onerror
。onerror+
在客户端事件onerror
之后触发。onerror+
的几个状态事件如onerror+exception
在后端返回数据后触发。IMG 标签没有 INPUT 和 BUTTON 标签的各种提示信息,如果想获取onload+
和onerror
事件的状态信息,可以启用debug
属性。
在执行完成后会在控制台输出状态和返回的数据,主要用于调试,生产环境可以关闭。