当我们使用dwz框架做文件上传,采用框架默认的隐藏iframe的方式上传文件,上传成功了,但是iframecallback 没有关闭当前的dialog,也没有提示信息或者出现提示信息错误。
代码如下:
<form class="pageForm required-validate" onsubmit="return iframeCallback(this,dialogAjaxDone);" enctype="multipart/form-data" action="couponCode!importCodeExcel.html" method="post" >
<div class="pageFormContent" layouth="56">
<input type='file' id='excelFile' name='excelFile'/>
</div>
<div class="formBar">
<ul>
<li>
<div class="button">
<div class="buttonContent">
<button type="submit">导入</button>
</div>......
其实如果我们debug下dwz.ajax.js里的iframeCallback方法,就发现
response = $iframe.contents().find(“body”).html()这一行的json值包含在标签pre里。而我们的response只需要json值,即大括号里的内容{……}
这时候我们可以在这一行下面加如下的代码:
var start=response.indexOf('{');
var end=response.indexOf('}')+1;
response=response.substring(start,end);
这样就能解决问题啦。
这个问题不会出现在所有的浏览器里,好像IE和火狐没有这个问题。
任何问题的出现,都是需要我们找到问题的源头。解决问题的方法最有效的方法就是清楚问题的所有。我们遇到问题能做的,就是多debug和查看日志。