各位大神,俺的AJAX上传文件可以上传,但无法获取回调值,请帮忙看看。用FF查看错误,提示为:missing ) in parentetical代码如下:(function(){
function addEvent( node,type,listener) {
if (node.addEventListener) {
node.addEventListener( type, listener, false );
return true;
} else if(node.attachEvent) {
node['e'+type+listener] = listener;
node[type+listener] = function(){node['e'+type+listener]( window.event );}
node.attachEvent( 'on'+type, node[type+listener] );
return true;
}
return false;
};
var submit=document.forms["myform"];
addEvent(submit,'submit',startUpload);
var begin;
var request;
var rdm;
var pec=document.getElementById("pecent");
function startUpload()
{
rdm=Math.floor(Math.random()*100000000);
document.getElementById('re').setAttribute('value',rdm);
document.getElementById("progress").style['display']='block';
//creatXmlHttpRequest();
begin=setTimeout(doRequest,1000);
};
function creatXmlHttpRequest()
{
if(window.ActiveXObject)
{request=new ActiveXObject("Microsoft.XMLHTTP")}
else{request=new XMLHttpRequest();}
};
var count=0;
function doRequest()
{
if(window.ActiveXObject)
{request=new ActiveXObject("Microsoft.XMLHTTP");}
else{request=new XMLHttpRequest();} if(request!=null){
request.onreadystatechange=handle;
request.open("GET","upload.php?key="+rdm+"&sim=" + (++count),true);
request.send();
}
};
function handle(){
if(request.readyState==4&&request.status==200)
{
//接受服务器数据
var pec=document.getElementById("pecent");
var prgs=eval("(" +request.responseText + ")");
var prgs=request.responseText;
var cur=parseInt(prgs.current);
var total=parseInt(prgs.total);
var pecentIs=Math.round(cur/total*100);
pec.innerHTML=pecentIs.toString()+"%";
if(100==pecentIs)
{
document.getElementById("rst").innerHTML="上传成功";
pec.style['width']="200px";
clearTimeout(begin);
}else{
begin=setTimeout(doRequest,1000);
alert(pecentIs);
pec.style['width']=pecentIs*2;
}
}
};
})();
function addEvent( node,type,listener) {
if (node.addEventListener) {
node.addEventListener( type, listener, false );
return true;
} else if(node.attachEvent) {
node['e'+type+listener] = listener;
node[type+listener] = function(){node['e'+type+listener]( window.event );}
node.attachEvent( 'on'+type, node[type+listener] );
return true;
}
return false;
};
var submit=document.forms["myform"];
addEvent(submit,'submit',startUpload);
var begin;
var request;
var rdm;
var pec=document.getElementById("pecent");
function startUpload()
{
rdm=Math.floor(Math.random()*100000000);
document.getElementById('re').setAttribute('value',rdm);
document.getElementById("progress").style['display']='block';
//creatXmlHttpRequest();
begin=setTimeout(doRequest,1000);
};
function creatXmlHttpRequest()
{
if(window.ActiveXObject)
{request=new ActiveXObject("Microsoft.XMLHTTP")}
else{request=new XMLHttpRequest();}
};
var count=0;
function doRequest()
{
if(window.ActiveXObject)
{request=new ActiveXObject("Microsoft.XMLHTTP");}
else{request=new XMLHttpRequest();} if(request!=null){
request.onreadystatechange=handle;
request.open("GET","upload.php?key="+rdm+"&sim=" + (++count),true);
request.send();
}
};
function handle(){
if(request.readyState==4&&request.status==200)
{
//接受服务器数据
var pec=document.getElementById("pecent");
var prgs=eval("(" +request.responseText + ")");
var prgs=request.responseText;
var cur=parseInt(prgs.current);
var total=parseInt(prgs.total);
var pecentIs=Math.round(cur/total*100);
pec.innerHTML=pecentIs.toString()+"%";
if(100==pecentIs)
{
document.getElementById("rst").innerHTML="上传成功";
pec.style['width']="200px";
clearTimeout(begin);
}else{
begin=setTimeout(doRequest,1000);
alert(pecentIs);
pec.style['width']=pecentIs*2;
}
}
};
})();
解决方案 »
- 如何在网页中嵌入activeX控件
- 内层Table样式问题,请高手赐教
- [JS]怎么把用getTime得到的时间变成String
- 循环表示object 标签对象
- 验证表单后无法跳转的诡异问题【有点急】
- 向各位高手请教一个关于用JavaScript只能输入用中文,英文和数字的判断,急呀
- 哪位大虾帮帮忙,给100分
- 客户注册后自动发一封email给客户是怎样实现的?
- 各位,请问大家知道怎么将一个变量从iframe里面传父页面,然后再将父页面刷新
- javascript正则表达式字符串怎么判断不包括“/”的问题?具体要求请看图,求大神帮忙!谢谢!
- JQ如何获取宽度为百分比(%)的对象具体宽度(px)
- 动态移除下拉框的选项
var prgs = request.responseText;把红色那句去掉,确保你返回的是json
这个是我写错了,但不是这个引发的问题。去掉之后还是没有获取值。代码中需要获取的值是:
pec.innerHTML=pecentIs.toString()+"%";
document.getElementById("rst").innerHTML="上传成功";这两句,并没有起作用,对用的id为rst的元素没有获取到值。
请赐教下。
<tr>
<td width="30%">
<iframe style="display:none" name="ifm"></iframe>
<form enctype="multipart/form-data" method="POST" action="upload.php" target="ifm" name="myform">
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="re" >
<input type="file" name="upfile"/>
<input type="submit" value="上传" name="sub"/>
</form></td>
<td width="70%" align="left"><div id="progress" class="before"><div id="pecent"></div></div>
<div id="rst">测试状态</div></td>
</tr>
</table>
if(request.readyState==4){
if(request.status==200){
//接受服务器数据
////
}
}
用fidder2监视下,看看返回数据没,有就去检查你的回掉,没有就看看发送请求那块
if (request.readyState == 4 && request.status == 200) {
//接受服务器数据
alert( request.responseText)///////看返回了什么,不符合JSON格式的内容eval肯定会报错了
var pec = document.getElementById("pecent");
var prgs = eval("(" + request.responseText + ")");