关于jsp上传图片后跳转到下个页面,页面的javascript失效的奇怪问题

如果给的建议能解决问题将追加更多的分。

javascript实现的功能如下见附件图片,能显示图片,能上传,但是选了文件上传后,再次回到此页面的时候 下面的这些就都不见了。因为Prepare函数没有触发。

用的是struts2,首次进入页面,很正常,用javascript显示的上传图片的按钮 组件什么的都正常显示,但是当我选了一个图片上传,点击保存,然后后台保存完之后还是跳回到这个页面,这时候window.onload=Prepare;就不执行了,图片也不显示了,好像javascript都失效了。 但是如果不上传图片,直接点击保存的话跳回来页面还是能正常显示的,只有在传了图片后页面才不正常。但是后台的保存图片什么的没有什么问题的而且也没什么关系,不知道问题在哪。 下面是代码,

<script type="text/javascript">// <![CDATA[ window.onload=Prepare; function Prepare(){ var str,filestr=""; // var address='<s:property value="myUser.photoaddress" />'; var address=document.getElementById("photoaddress").value; var pic=address.split(','); var li=" "; if(pic!=''){ for( var i=0; i< pic.length; i++){ li=li+'<li><img src="images'+pic[i]+'" width="61" height="61"/><input type="button" value="删除" onclick="delphoto('+i+')" /></li>'; } } str='<ul id="gallery">'+li+'</ul>'; if(pic!=''){ for(var j=0;j<4-pic.length;j++){ filestr+='<p><s:file name="photo" ContentEditable="false" theme="simple"/></p>'; } }else{ for(var j=0;j<4;j++){ filestr+='<p><s:file name="photo" ContentEditable="false" theme="simple"/></p>'; } } document.getElementById("divHtml").innerHTML=str; document.getElementById("dfile").innerHTML=filestr; } function delphoto(i){ var address=document.getElementById("photoaddress").value; var pic=address.split(','); if(i==pic.length-1){ if(pic.length==1){ address=address.replace(pic[i], ''); }else{ address=address.replace(','+pic[i], ''); } }else{ address=address.replace(pic[i]+',', ''); } //ajaxtool.deletePhoto(pic[i],function(data){///ajax调用后台删除方法 // }); var delep=document.getElementById("deletedphoto"); delep.value=delep.value+pic[i]+","; var p=document.getElementById("photoaddress"); p.value=address; Prepare(); } // ]]></script>
renwo713
renwo713 这个问题的由于用了struts的标签<s:file> 造成的,改成input type="file" 就ok了,不知道用s:file的话还要改哪里,我记得以前也是用s:file的,都没有问题。
7 年多之前 回复

3个回答

在【function Prepare(){】上面和下面各写一个alert语句,能否执行呢

yunzhu666
yunzhu666 页面有没有报错啊,打开浏览器的跟踪调试,如果报错了JS就不执行了
7 年多之前 回复
renwo713
renwo713 在此函数的外部上下各写一个alert,上传图片跳过来后均不会执行,不传图片能正常执行
7 年多之前 回复
renwo713
renwo713 不知道什么原因,整个prepare函数不能执行,我写了个按钮点击执行也不会执行,好像没有这个函数一样。
7 年多之前 回复

上传后到页面把alert出来看看都是什么

zyn010101
zyn010101 <script> Prepare(); </script> 把这个放到</html>的下面试试
7 年多之前 回复
renwo713
renwo713 <s:property value="myUser.photoaddress" /> 有值,正常的值
7 年多之前 回复

<img src="images' 请改成绝对路径试试 估计上传成功后 你是使用forward显示 此时计算相对路径可能出问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐