chrome下的img.onload


今天发现chrome下的一个小问题,当img.src重复设置为相同值的时候,img.onload不会重复执行。

<img src=""><button>click me</button>

<script>
var img = document.getElementsByTagName('img')[0];
var button = document.getElementsByTagName('button')[0];

var count = 0;
button.onclick = function(){
    img.onload = function(){
        alert('you load:'+(++count));
    };
    img.src = 'chrome.jpg';
}
</script>

为了让img.onload每次都能运行,只能让img.src每次都改变。

方法一——加时间戳:

img.src = 'chrome.jpg?r='+(new Date());

但这种方法让浏览器无法缓存图片,因此可以使用方法二:

img.onload = null;//先解除onload事件
img.src = '';//让img.src改变
img.onload = function(){//再绑定onload事件
    //your code here
};
img.src = 'chrome.jpg';

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM