我的问题是这个
我正在将一个html字符串加载到UIWebView中,我在其中引用了我的应用程序的Documents文件夹中的本地图像。
<html><body><img src="image.png"/></body></html>
它加载得很好,没有baseUrl或其他任何问题。问题是当我做一些东西并生成一个具有相同名称的新图像,并将其保存在相同的Documents文件夹中,覆盖旧文件夹(如果它存在则删除旧文件并保存新文件夹)。
现在,UIWebView仍然在屏幕上加载,如果我进行[webview重新加载]或再次手动加载html字符串,我仍然会得到旧图像,即我刚刚覆盖的图像。
我已经在模拟器文件夹中检查过,image.png确实有新图像,而不是旧图像。我已经做了一切可以想象的事情来阻止webview缓存。
当然,如果我用不同的名字保存新图像,比如说“image2.png”,然后用src =“image2.png”重新加载html字符串,那么一切都显示确定。
我在这里缺少什么?
答案 0 :(得分:3)
尝试将随机查询字符串附加到图像源。 即
function ImageSource(src){
return src + "?time=" + (new Date()).getTime().toString();
}
function ForceImageReloads(){
var images = document.getElementsByTagName("img");
for (var i=0;i<images.length;i++){
var img = images[i];
var s = img.getAttribute("src");
img.src = ImageSource(s);
}
}
ForceImageReloads();
或类似的东西:)
答案 1 :(得分:0)
这可能是模拟器的一个问题。我曾经有类似的东西。尝试在真实设备上运行代码。对我来说,模拟器似乎懒得重新加载具有相同名称的数据。