使用JavaScript为一张图片设置备选路径的方法

发布时间 - 2026-01-10 22:17:19    点击率:

在做网页开发的时候,有时候希望给图片设置一个备选路径,即,当src属性对应的主路径加载失败的时候,图片可以马上切换到备选路径。这样,即使主路径失效了,显示备用路径也不会影响网页的正常体验。

注意到网页中一张图片加载失败会触发error事件,因此可以使用DOM模型中的load和error事件实现这一效果。

src1='main/image.jpg' //主路径
src2='another/image.jpg' //备用路径

jQuery 1.8以前

使用load和error方法捕捉事件

$('#imgMap' ).attr("src",src1).load(function(){console.log("图片加载成功")
        }).error(function(){
          console.log("图片加载失败,切换路径")
          $('#imgMap').attr('src',src2)    
        });

jQuery 1.8

由于jQuery1.8之后load()方法和error()方法已经废弃了,因此可以使用bind方法绑定事件

$('#img').attr("src",src1).bind( "load", function() {
 console.log("图片加载成功")
}).bind("error",function(){
  console.log("图片加载失败,切换路径")
      $('#img').attr('src',src2)  
});

jQuery 3.0

jQuery3.0以后,统一使用on方法捕获事件

$('#img').attr("src",src1).on( "load", function() {
 console.log("图片加载成功")
}).on("error",function(){
  console.log("图片加载失败,切换路径")
      $('#img').attr('src',src2)  
});

JavaScript

不想使用jQuery插件时,也可以调用JavaScript原生方法。使用addEventListener方法监听事件。

var Image = document.getElementById('img');
Image.src=src1;
Image.addEventListener('load', function(event) {
       console.log("图片加载成功")
});
Image.addEventListener('error', function(event) {
      console.log("图片加载失败,切换路径")
       Image.src=src2;
});

以上所述是小编给大家介绍的使用JavaScript为一张图片设置备选路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# javascript路径  # JS获取input file绝对路径的方法(推荐)  # js获取上传文件的绝对路径实现方法  # JavaScript获取当前url根目录(路径)  # 通过js获取上传的图片信息(临时保存路径  # 名称  # 大小)然后通过ajax传递给后端的方法  # 浅谈NodeJS中require路径问题  # JS取得绝对路径的实现代码  # 加载  # 可以使用  # 小编  # 这一  # 在此  # 注意到  # 给大家  # 所述  # 绑定  # 给我留言  # 感谢大家  # 切换到  # 疑问请  # 有任何  # js  # main  # jpg  # image  # strong  # DOM 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  android nfc常用标签读取总结  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  如何快速重置建站主机并恢复默认配置?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  如何快速搭建高效服务器建站系统?  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何快速搭建虚拟主机网站?新手必看指南  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  实现点击下箭头变上箭头来回切换的两种方法【推荐】  5种Android数据存储方式汇总  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何在万网主机上快速搭建网站?  如何快速完成中国万网建站详细流程?  Laravel怎么上传文件_Laravel图片上传及存储配置  Python制作简易注册登录系统  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  javascript日期怎么处理_如何格式化输出  PHP正则匹配日期和时间(时间戳转换)的实例代码  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在IIS7上新建站点并设置安全权限?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  iOS UIView常见属性方法小结  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Android Socket接口实现即时通讯实例代码  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何在万网ECS上快速搭建专属网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  七夕网站制作视频,七夕大促活动怎么报名?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在橙子建站上传落地页?操作指南详解  nodejs redis 发布订阅机制封装实现方法及实例代码  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】