图片加载失败,所导致的浏览器兼容问题

网站当中经常会遇到图片加载失败的问题,img中有地址,但是地址打开是错误的。情况如下:


不同浏览器处理错误图片是不一样的,有的干脆就显示差号,例如IE,有的显示一张破碎的图片,有的则是给一张高度比较大的默认图,例如PC端的火狐,IOS中Safari,还有安卓中的UC浏览器。这样在手机中就会导致左右两侧图片高度不一致!如下图:

解决方案

其实这里解决很简单,判断当图片加载失败的时候给一个默认图就可以了,不让浏览器使用其自带的默认图。

<img src=http://www.aseoe.com/"http://www.aseoe.com/images/logo.png" onerror="javascript:this.src='http://www.aseoe.com/images/logo.png';" alt="pic" />

衍生问题

因为图片加载失败进入默认图,那么默认图再加载失败怎么办呢?这不是进入一个死循环吗?

最简单的一个解决办法是,onerror中的图保证能打开,保证比较小!不会出现问题!。这个方法也是最有效的方法!

假如你不能保证,那么,只能靠函数来解决这个问题了!

思路是:

当图片加载失败,进入onerror的时候,判断onerror的图片是不是能加载,在onerror中的图片触发onerror的时候,设置onerror为null。

代码如下:

<img src=http://www.aseoe.com/"logo.png" onerror="nofind();" />

<script type="text/javascript">  

    function nofind(){
        var img=event.srcElement  event.target ;  //获取img对象,火狐是event.target ,IE及谷歌其他是event.srcElement
        console.dir(img);//大家可以打印看一下
        img.src=http://www.aseoe.com/"http://www.aseoe.com/statics/images/nopic.gif";
        img.onerror=null;
    }  

</script>  

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 图片
, 浏览器
, img
, event
, 加载 失败
, 最失败
, wwjod.dll加载失败
, null加载失败
, 火狐获取event对象
, onerror
加载失败
谷歌浏览器加载失败、浏览器图片加载失败、浏览器视频加载失败、浏览器加载失败、手机浏览器 加载失败,以便于您获取更多的相关知识。

时间: 2024-09-11 14:26:48

图片加载失败,所导致的浏览器兼容问题的相关文章

js 图片加载失败,所导致的浏览器兼容问题

问题描述 网站当中经常会遇到图片加载失败的问题,img中有地址,但是地址打开是错误的.情况如下: 不同浏览器处理错误图片是不一样的,有的干脆就显示差号,例如IE,有的显示一张破碎的图片,有的则是给一张高度比较大的默认图,例如PC端的火狐,IOS中Safari,还有安卓中的UC浏览器.这样在手机中就会导致左右两侧图片高度不一致!如下图: 解决方案 其实这里解决很简单,判断当图片加载失败的时候给一个默认图就可以了,不让浏览器使用其自带的默认图.  代码如下 复制代码 <img src="/no

迅雷加载项会导致IE9浏览器崩溃

相信很多网友今天启动电脑后的第一件时间就是下载IE9beta,看到IE浏览器的新界面以后感觉确实比之前的版本要简洁很多,色彩的搭配也更加舒服了.安装完毕以后立即打开浏览器体验,随便输入了一个网页打开即报错崩溃了.严重的打击了我对IE9的信心,还好找到了是迅雷图片浏览器插件导致的问题,并非浏览器本身的问题. 解决方法: 打开管理加载项,找到迅列的插件,把"迅雷网页图片浏览器IE支持"禁用就可以了,开始体验IE9吧 有兴趣的可以自己下载安装试试看,相信IE9会给你带来惊喜的. 友情提醒,I

JavaScript前端图片加载管理器imagepool使用详解_基础知识

前言       imagepool是一款管理图片加载的JS工具,通过imagepool可以控制图片并发加载个数.       对于图片加载,最原始的方式就是直接写个img标签,比如:<img src="图片url" />.       经过不断优化,出现了图片延迟加载方案,这回图片的URL不直接写在src属性中,而是写在某个属性中,比如:<img src="" data-src="图片url" />.这样浏览器就不会自动

JavaScript imagepool图片加载管理器使用教程

前言 imagepool是一款管理图片加载的JS工具,通过imagepool可以控制图片并发加载个数. 对于图片加载,最原始的方式就是直接写个img标签,比如:<img src="图片url" />. 经过不断优化,出现了图片延迟加载方案,这回图片的URL不直接写在src属性中,而是写在某个属性中,比如:<img src="" data-src="图片url" />.这样浏览器就不会自动加载图片,等到一个恰当的时机需要加载

详解Android之图片加载框架Fresco基本使用(二)

PS:最近看到很多人都开始写年终总结了,时间过得飞快,又到年底了,又老了一岁. 学习内容: 1.进度条 2.缩放 3.ControllerBuilder,ControllerListener,PostProcesser,Image Request 4.渐进式JPEG与动图的显示 最近这两天把Fresco的官方文档算是看了个差不多,就剩下Fresco的基本原理还有结合okHttp等类库如何使用的问题,虽然官方文档给出的功能比较的多,比如说自定义View,缩略图显示等等,这些我也基本就看了个大概,觉

图片onerror事件,为图片加载指定默认图片

为图片指定加载失败时显示默认图片,js输出的img对象,onerror是事件,不是属性,所以这样写是不起作用的: var img = $(document.createElement("IMG"));     img.attr({         "src": imgs[idx],         "alt": tips[idx],         "onerror":"this.src='" + NoPi

jQuery处理图片加载失败的常用方法_jquery

本文实例讲述了jQuery处理图片加载失败的常用方法.分享给大家供大家参考.具体如下: 这里演示用 jQuery 替换源来提醒用户加载失败及隐藏的方法. // 方法 1:更换图片地址 $('img').error(function(){ $(this).attr('src', '加载失败.png'); }); // 方法 2:隐藏它 $("img").error(function(){ $(this).hide(); }); 希望本文所述对大家的jQuery程序设计有所帮助. 以上是小

Swift版本的图片加载类

之前使用OC版本的,都是基于AFN而自行封装的类库, 现在写了一个swift版本的,很方便使用,在些开源出来. 首先是图片下载类: // // HYBImageLoader.swift // OSChinaClient // // Created by 黄仪标 on 15/3/5. // Copyright (c) 2015年 huangyibiao free edu. All rights reserved. // import Foundation import UIKit /// ///

初识Facebook的强大Android图片加载的框架:Fresco

Fresco是facebook推出的一款强大的图片加载的框架,这个框架出来一段时间了,前一段时间使用过了ImageLoader的框架,生命在于折腾,今天就来折腾一下Fresco这个强大的框架. 1.配置环境 由于我用的是android studio所以这里就只是说一下android studio下如何配置,在强大的gradle,只需要一句话搞定,gradle会帮你下载这个Fresco框架,gradle真好,可以自动维护你项目中的框架 compile 'com.facebook.fresco:fr