上传后,image src不会更改

时间:2009-10-26 19:52:48

标签: javascript jquery ajax try-catch

我正在使用Ajaxupload插件上传,我在ajaxupload的OnComplete事件中使用此函数;

function degis(){
var a = "<?php echo $id; ?>";
document.getElementById("imga").src = "../artwork/"+a+"/logo.jpg?dummy=371662";
document.getElementById("imga").style.width = "500px";
document.getElementById("imga").style.height = "175px";
}

但是新上传的图片没有出现的原因。我试过“?dummy = 371662”,但没有用。

我也将此用于ajaxupload的Onsubmit事件

function updeg(){
var a = "uploading.gif";
document.getElementById("imga").style.width = "50px";
document.getElementById("imga").style.height = "50px";
document.getElementById("imga").src = a;

}
</script>

这是此元素的html

 <img id="imga" alt="" height="175px" src="../artwork/<?php echo $id; ?>/logo.jpg?dummy=371662" width="500px">

对此有何建议?

1 个答案:

答案 0 :(得分:1)

根据您上面的编辑和评论,我认为您需要这样的内容:

function junk() {
    return (new Date()).getTime() + Math.round(Math.random());
}

function degis() {
    var img = document.getElementById("imga");
    if (img) {
        img.src = "../artwork/<?php echo $id; ?>/logo.jpg?nocache=" + junk();
        img.style.width = "500px";
        img.style.height = "175px";
    }
}

您之前尝试绕过缓存不起作用,因为每次“虚拟”值都相同。通过使用junk()函数,如上所述,每次都会获得不同的随机值,从而确保无法缓存图像。