javascript - 为来自外部站点的图像回退 img src

标签 javascript knockout.js

我需要显示来自其他站点的图像,并且有一个带有引用图像 URL 的 imgsrc 属性的 View 模型。然后我有以下 HTML 绑定(bind):

<img data-bind="attr: { src : imgsrc }" />

问题是绑定(bind)图像是外部的,如果外部站点有问题,我可能会收到 404 或 500 响应;因此,我想显示备用图像,以防我们无法加载图像。

如何使用 KnockoutJS 实现这一点?

最佳答案

您可以使用 onerror 事件。

HTML:

<img id="pic" data-bind="attr: { src : imgsrc }" />

JavaScript:

var myViewModel = {
    imgsrc: ko.computed(function () {
        var pic = document.getElementById('pic');
        pic.onerror = function () {
            pic.src = 'fallback image url';
        };
        return 'image url';
    }, this)
};

ko.applyBindings(myViewModel);

示例:http://jsfiddle.net/R4SV7/1/

关于javascript - 为来自外部站点的图像回退 img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685374/

相关文章:

javascript - 将 Dynamics 365 地址字段转换为下拉列表

javascript - polymer 纸标签在点击时会显示上一个标签

javascript - 具有固定右列的 Div 表

knockout.js - $root 和 $parent 有什么区别?

javascript - 如何在绑定(bind)中使用 switch 语句?

javascript - AngularJs 的过滤器搜索不起作用

javascript - 附加左键或右键单击的事件监听器 - onclick 不适用于右键单击

javascript - Knockout 和 coffeescript - uncouched 类型错误

javascript - knockout 绑定(bind)和 CK 编辑器工具栏未出现

javascript - javascript Node 模块和纯脚本引用如何在浏览器中共存?