重新加载页面上的所有图像

时间:2011-07-22 17:33:37

标签: javascript jquery

我正在尝试重新加载页面中的所有图片,包括backgound-image:规则

我有一些半工作代码,但我想知道是否有更简单的方法。

function cacheBuster(url) {
    return url.replace(/\?cacheBuster=\d*/, "") + "?cacheBuster=" + new Date().getTime().toString();
}

$("img").each(function() {
    this.src = cacheBuster(this.src);
});

$("*").each(function() {
    var bg_img = $(this).css("background-image");
    if (bg_img !== "none") {
        var url = /url\((.*)\)/i.exec(bg_img);
        if (url) {
            $(this).css("background-image", "url(" + cacheBuster(url[1]) + ")");
        }
    }
}); 

1 个答案:

答案 0 :(得分:1)

看起来很好,但是缺少type = image的输入,即用作提交按钮的图像。您可以通过添加以下代码来包含它们

$("img, input[type=image]").each(function() {
    this.src = cacheBuster(this.src);
});

此外,您可以更改循环浏览所有元素的代码,只要包含可见元素,如果在您的情况下可以接受。

$("*:visible")

希望这有帮助。