【问题标题】:image src doesnt change after upload上传后图片src不变
【发布时间】:2009-10-26 19:52:47
【问题描述】:

我正在使用 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">

对此有何建议?

【问题讨论】:

  • 请显示相关的 HTML。
  • 您的 HTML 显示的内容与 JS 相同。你是说它在 HTML 中有效,但在 JS 中无效? $id 是两者之间唯一变化的东西吗?
  • 当页面加载“imga”元素src是好的,但在上传完成后,它会调用degis()函数来改变“imga”src attr。对于新上传的图片,它显示的是旧的,我希望我能解释一下对不起
  • 顺便说一下$id总是一样的,新上传的图片名称也是那个$id变量

标签: javascript jquery ajax try-catch


【解决方案1】:

根据您上面的编辑和 cmets,我认为您需要这样的东西:

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()函数,如上,每次得到不同的随机值,保证图片不会被缓存。

【讨论】:

  • 好的,但如果没有修改,我如何在上传过程后更改图像?
  • 哦,对不起,你在谈论高度和宽度,我正在改变它,因为 ajaxupload 的 OnSubmit 事件还有一个功能是改变高度和宽度,我正在编辑我的问题
  • 已编辑以回答当前问题和 cmets。
猜你喜欢
  • 2016-04-11
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2020-09-12
  • 2013-10-20
  • 1970-01-01
相关资源
最近更新 更多