1
頁
上的所有圖片,我試圖讓在頁面中的所有圖像重新加載包括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]) + ")");
}
}
});
對我很好。本來會建議使用'hasAttribute'選擇器來過濾'*',但是,它可能無法在CSS支持的元素上工作。 – Mrchief
對我也很好。我不知道其他的選擇。我給圖片網址添加了一些噪音(如img.png?)。 – mana
當瀏覽器從服務器加載新圖像時,用戶可能會看到圖像閃爍一次,或者圖像可能會消失一段時間,具體取決於連接速度。 – JJJ