2009-10-26 85 views
1

我正在使用Ajaxupload插件上传,我在ajaxupload的OnComplete事件中使用此函数;上传后图像src没有变化

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

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

} 
</script> 

的onsubmit事件,这是这个元素

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

对此有何建议的HTML?

+0

请显示关联的HTML。 – 2009-10-26 19:57:06

+0

您的HTML显示与JS相同的内容。你是说它在HTML中工作,但不在JS中? $ id是两者之间唯一的变化吗? – 2009-10-26 20:01:13

+0

当页面加载“imga”元素时,src可以,但上传完成后,它会调用degis()函数来更改“imga”src attr。到新上传的图像,它显示旧的,我希望我可以解释对不起 – 2009-10-26 20:03:50

回答

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()函数,如上所述,您每次都会得到一个不同的随机值,以确保图像不会被缓存。

+0

确定但没有该修改如何更改后图像上传处理? – 2009-10-26 20:06:33

+0

哦对不起,你说的是高度和宽度,我在改变它,因为还有一个函数用于更改高度和宽度的ajaxupload OnSubmit事件,我正在编辑我的问题 – 2009-10-26 20:08:55

+0

编辑回答了当前的问题和意见。 – 2009-10-26 20:19:06