3

我面临的十字符号问题出现在 chrome 和 IE 中的图像 是我想要从外部 java 脚本文件中获得的场景(我想要这样的东西)。 在此处输入图像描述

当图像标签无法从源中找到图像时,第一张图像具有十字图标。mozilla 会非常巧妙地处理这个问题,但是 chrome 和 IE 会显示一个我不想要的十字图标..

我找到了不通用的解决方案,当图像没有从每个图像标签上的指定 url 获取图像时,我必须传递一个透明的图像 url.. 像这样

<img src="i/ibm.png" onerror="this.src='i/1x1trns.png';">

但在我的页面中有超过 20 张图片,在整个项目中超过 200 张,所以在这种情况下,我想从单个外部 javascript 文件中处理这个......

所以任何人知道这个问题请告诉我一个解决方案......谢谢合作

4

2 回答 2

1

在标签中定义 jQuery 有点脏,但是<head />您需要为.$.ready$.ready<head />

或者

在拥有这些图像之前,您需要添加 jQuery。

试试这个代码

<body>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("img").on("error", function() {
                $(this).attr("src", "i/1x1trns.png");
            });
        });
    </script>
    <img src="not-a-valid-image.png" alt="Logo not found" />
</body>

我在我的一个项目中使用了这种方式。

于 2013-02-05T12:21:17.187 回答
1
var imgs = document.getElementsByTagName('img');

for (var i = 0; i < imgs.length; i++) {
    (function(img_elem) {
        var img = new Image();
        img.src = img_elem.src;
        img.onerror = function() {
             img_elem.src = 'i/1x1trns.png';
        };
    })(imgs[i]);
}

http://jsfiddle.net/Ypa7N/

于 2013-02-05T11:42:22.027 回答