javascript,如果加载相同的图像,图像onload()不会在webkit中触发

标签 javascript image webkit onload

我有一个 <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/

相关文章:

html - 是否可以锁定或加密 SVG 图形?

css - google的pagespeed和mobile-friendly测试使用什么渲染引擎?

javascript - 如何使用 Plottable.js 创建饼图

javascript - 将 javascript window.onerror 限制为仅在我的脚本中出现错误

java - 在调整大小之前计算调整大小的图像(例如 JPEG)的文件大小

php - 更新图像的问题

javascript - 如何调整 iframe 的大小以适应 iframe 内容的高度?

javascript - JQuery 选择器 : select td if sibling has . 类

php - 图片上传php mysql

css - 在 chrome 中,当 <p> 中某些 <a> 或 <strong> 的行为就像它们处于 "inline kinda absolute"位置(您需要查看图片)