今天发现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';