ie6,7下js动态加载图片不显示错误

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

做了一个商品详情页面,先加载几个小图片,然后点击显示大图,

html如下:

<a href="javascript:void(0);">
<img height="75px" width="75px" src='<%# Eval("PicSmallPath")%>' onclick="loadimg('<%# Eval("PicLargePath")%>','<%# Eval("PicMediumPath")%>')"
align="middle" />
</a>

用js写的,如下:

 

结果ie6、7都不正常。换了种写法:
$("#midimg").get(0).src = _obj;


还是不行,再换:
var img = document.getElementById("midimg");
img.src = _obj;

还是不行。
继续百度之,终于发现一篇文章:http://flyheaven.blog.163.com/blog/static/74011722009111124417164/
http://hi.baidu.com/smallchicken/blog/item/f039fb664e3c532eab184c9d.html

 

IE6,7只有在用<a onclick="switch_image()" href="javascript:void(0);"></a>这样
动态加载图片是才会出现这种情况,google到的一篇说明:

有几个吃饱了没事儿干的老外反复试验发现这个问题是ie6中一个底层机制的bug,之后的版本已经解决了。
据说<a href="javascript:void(0)">或者<a href=#">这样使用a标签的话并不能阻止a标签最后触发一个什么行为,
导致ie6会错误的认为页面刷新或者重定向了,并且中断了当前所有连接,这样新图片的加载就被aborted了。
当然这些吃饱了没事儿干的老外们也提出了各种匪夷所思复杂无比的解决方案。

最简单的方法有两个,一个是这样使用a标签<a href="switch_image(); return false;">,另外一个就是用div替换a标签来用。

实际上我发现不仅是IE6,IE7也同样有这个bug,还有,采用:<a href="switch_image(); return false;">并不能解决问题。

所以推荐用其他标签替换a标签,最后一怒之下把所有的a标签替换为span,从此就再也没出现这样的问题了。

 

 终于搞定了,可恶的IE6.

借助图片加载触发 JavaScript 动态导入:方案与实践 本文探讨了前端性能优化中结合图片加载JavaScript动态导入的技术方案。该方案利用IntersectionObserver监听图片进入视口时,同时触发图片加载和关联JS模块的动态导入,实现资源精准按需加载。核心优势包括减少首屏冗余资源、匹配用户行为、优化代码拆分等,特别适用于长列表、详情页等场景。文章详细分析了实现逻辑、优化技巧(如防抖处理)、适用场景与局限性,并重点讨论了错误处理方案,推荐使用async/await+统一错误捕获函数的方式。最后提出了场景匹配原则和体验优化建议,为前端性能优化提供了 阅读详情

相关推荐

原生JS动态实时显示图像加载的状态

使用原生JavaScript实现实时显示图像加载的状态。当图像没有加载完成时,页面显示图像正在加载,当完成后显示图像已经加载完成。

解决javascript动态改变imgsrc属性图片显示问题

解决javascript动态改变imgsrc属性图片显示问题

asdfgh0077的博客 3691

js显示gif图片

是想在轮显的图片显示总是.jpg图。 换成.gif时就显示。 这个问题我以前也遇到过,解决了,现在分享给大家。

img标签动态设置src属性,生效

img标签动态设置src属性,生效js如下: for(var i = 0; i&lt;len;i++){ var data = datas[i]; var nickname = data.nickname; var avatar = data.avatar; var li_item = ''; if(avatar == null){ // ...

感恩、奋进、自信 2万+

2021-11-08 img标签src动态获取时加载出来问题【require】

v-for循环img路径时,直接写字符串地址是加载出来的。 比如: <span v-for ="item in imgs" :key="item"> <img :src="item"> </span> imgs: [ '../assets/img/login1.png', '../assets/img/login2.png' ] 由于Vue最后是基于 webpack 打包文件的,我们本地的路径 在webpack打包之后, webpack会解析它为模块依赖

一只白猫罢了 1561

js图片加载 完成之前显示loading中的图片

<html> <title>js图片加载显示loading效果</title> <body> <style> img{float:left;width:200px;height:200px;margin:0 10px 10px 0} </style> <script> //判断浏览器...

一只快乐的小猴子的博客 1万+

vue中图片显示问题 - vue中静态资源加载

变量的值,该变量的值就是一个字符串,所以最后显示的是字符串没有解析地址去获取图片。是一个 ESM 的原生功能,会暴露当前模块的 URL。require是在运行时加载,import是编译时加载。中会将图片来当做模块来用,因为是动态加载的,所以。为了能让Webpack返回正确的资源路径,使用。根据结果来看,相对地址没有被解析。这里的错误原因理解的是动态绑定。进行解析,然后返回处理过的。进行解析,然后返回处理过的。解析到的路径都会被解析为。提供的一种加载能力,但是。提供的静态资源载入方法,

好好学习天天向上 5951

ie6下js动态更改图片地址,图片显示的bug

当在ie6中用js动态更改图片地址时,图片会变换,产生的原因是或如应用a标签的话其实能禁止a标签最后触发一个甚么行动, 致使ie6会过错的以为页面刷新或重定向了,而且中止了当前所有衔接,新图片加载就被aborted了。 解决方法是使用a标签,或者在方法的最后加上一句 return false;就可以了。 如看清楚?换一张图片

happyqyt的专栏 1408
上一篇: 该伙伴事务管理器已经禁止了它对远程/网络事务的支持
下一篇: win2008R2、win7不停闪屏、程序失去响应的解决办法
yanxiaodi
博客等级 码龄19年 33粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值