日期:2014-05-18  浏览次数:20687 次

我要页面上动态的创建上传文件file,现在遇到几个问题,想请教各位....
问题:如下:为什么alert(url.length);显示出来的长度为1呢?为什么inputEle.setAttribute("value",url);这条不起作用呢?
代码如下:
<script>
function RegExpTest(){
  var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
  if (ver >= 5.5){ // 测试 JScript 的版本。
  var src = "范德萨<IMG alt='' hspace=0 src='D:\Documents and Settings\zhengya\桌面\图片与hmtl资料\jsmenu.gif' align=baseline border=0>222<IMG alt='' hspace=0 src='D:\Documents and Settings\zhengya\桌面\图片与hmtl资料\jsmenu.gif' align=baseline border=0>";
  var re = /<\s?img[^>]*>/gi; // 创建正则表达式模式。
  var arr;
var i = 0;
var subre =/src=[\'\"].*[\'\"]/gi; //获取src路径
while ((arr = re.exec(src)) != null){
var r =arr.toString().match(subre);  
createUpload("info",i,r);
i++;
}
  }
  else{
  alert("请使用 JScript 的更新版本");
  }

}
//创建上传组件
function createUpload(form,i,url){
alert(url);
alert(url.length);
var inputEle=document.createElement("input");  
  inputEle.setAttribute("type","file");
  inputEle.setAttribute("value",url);
  inputEle.setAttribute("name","myfile"+i);  
  document.getElementById("info").appendChild(inputEle);
}
</script>

------解决方案--------------------
JScript code

……
while ((arr = re.exec(src)) != null) { 
……
}

------解决方案--------------------
为什么alert(url.length);显示出来的长度为1呢?
我感觉是不是URL在JS里把它当成数组对象了,所以才会显示为1
为什么inputEle.setAttribute("value",url);这条不起作用呢? 
我没用过document.createElement("input"); 所以也不知道是什么原因
------解决方案--------------------
while ((arr = re.exec(src)) != null){ 
var r =arr.toString().match(subre);
createUpload("info",i,r); 
i++; 


改为

while ((re.exec(src)) != null){ 
arr = re.exec(src)); 
var r =arr.toString().match(subre);
createUpload("info",i,r); 
i++;