jquery - 移动 safari/chrome 上的图像错误加载占位符图像问题

标签 jquery image function attr unbind

如果图像 src png 不可用/出现错误,我将使用以下脚本加载占位符图像:

<script type="text/javascript">
jQuery("img").error(function () {
    jQuery(this).unbind("error").attr("src", "/images/people_placeholder.png");
});
</script>

我正在关闭之前加载上述脚本 </body>标签。

它在 Chrome 桌面上运行良好并显示占位符图像。

它不适用于 Safari 桌面版或手机上的 Safari/Chrome

有什么想法吗?

最佳答案

这可能是因为如果 onerror 则未调用处理程序事件已触发,您可以 try catch onerror事件,将此脚本放在 </head> 之前标签:

document.addEventListener('error', function (event) {
     var elm = event.target;
     if (elm.tagName == 'IMG') {
         elm.src = "/images/people_placeholder.png";
     }
 }, true ); // true to capture event

或者尝试检查特定属性,您可以在 </body> 之前使用标签:

jQuery("img").one('error', function () {
    jQuery(this).attr("src", "/images/people_placeholder.png"); //.unbind("error") is useless here
}).each(function () {
    if (this.complete && !this.naturalHeight && !this.naturalWidth) {
        $(this).triggerHandler('error');
    }
});

关于jquery - 移动 safari/chrome 上的图像错误加载占位符图像问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837134/

相关文章:

javascript - iOS 设备上 HTML5 Canvas 中 Javascript 的 setTimeout 问题

arrays - Maxima:定义一个函数,返回一个范围内的随机整数,使得该值不同于另一个值或其他值的列表

javascript - 在 jquery 中添加事件委托(delegate)

jquery - 使用可变 URL (jQuery) 设置 div 的背景图像

php - Action Script 3 使用 Base64 解码从 mysql 加载图像,图像加载损坏

c++ - 使用 get 方法或成员直接访问值?

javascript - 如何检测生成元素的点击?

jquery - 在列表中查找具有指定类的第 5 个元素并在 jQuery 中添加另一个类

javascript - 如何使用 jquery 将 <br> 的上一个和下一个同级文本与 div 换行?

java - 将图像插入 vaadin 网格