我正在尝试重新加载页面中的所有图片,包括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]) + ")");
}
}
});
答案 0 :(得分:1)
看起来很好,但是缺少type = image的输入,即用作提交按钮的图像。您可以通过添加以下代码来包含它们
$("img, input[type=image]").each(function() {
this.src = cacheBuster(this.src);
});
此外,您可以更改循环浏览所有元素的代码,只要包含可见元素,如果在您的情况下可以接受。
$("*:visible")
希望这有帮助。