我有一个 <img>
元素,我正在更改它的 src
属性。该元素有一个 onload
附加处理函数。每次我更改 src 属性并加载图像时,处理函数都应该运行。
在 Chrome 和 Safari 中,如果我分配与之前相同的 src,则处理函数不会运行。在分配与之前相同的 src 之前,我尝试了 imgElement.src=''
, imgElement.src= null
, imgElement.src='notExistingFile.jpg'
但都不起作用。
请帮忙。以前有人遇到过这个问题吗?
编辑:它通过在分配与之前相同的 src 之前执行 imgElement.src = '' 来工作:
imgElement.src = '';
imgElement.src = 'image.jpg';
最佳答案
这是一个 known bug .这是该链接的解决方法:
This is not a bug. WebKit is just more strict. You must instantiate a new
Image()
object before the replacement, like this:var photo = document.getElementById('image_id'); var img = new Image(); img.addEventListener('load', myFunction, false); img.src = 'http://newimgsource.jpg'; photo.src = img.src;
关于javascript,如果加载相同的图像,图像onload()不会在webkit中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5024111/