js 生成组合彩信并生成smil

把一下代码直接复制到html中,运行一下,再回头研究下,主要用 微软 运行时组件(ActiveXObject)
______________________
<!DOCTYPE HTML PUBLIC "-//W<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3C</chmetcnv>//DTD HTML 4.01 Transitional//EN"

 

"http://www.w3.org/TR/html4/loose.dtd">

 

<html>

 

<head>

 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

 

<title>mmsCreator</title>

 

</head>

 

<body>

 

 <span><font size=2 color=green>添加彩信素材,生成彩信</font></span><br/>

 

<a href="javascript:void(0)" onClick="addAttach(content)">添加附件</a>

 

<div id="content"></div>

 

</body>

 

</html>

 

<script type="text/javascript">

 

var ID=1;

 

var isValid=false;

 

var fso=new ActiveXObject("Scripting.FileSystemObject");

 

//添加附件

 

function addAttach(obj){

 

 fileID="element"+ID;

 

 var objChild=document.createElement("div"); //构造条状容器对象

 

 var file= document.createElement("<INPUT TYPE='file' SIZE='12'/>"); //生成file

 

 file.id=fileID; //设置fileID

 

  file.name=fileID; //设置fileName

 

 

 var timeField=document.createElement("<input type='text' size='2' maxLength='2' />"); //时间字段

 

 timeField.name=fileID;

 

 timeField.value=1;

 

 timeField.title="输入时间, 10";

 

 timeField.attachEvent("onkeyup",fun(timeField,null,'checkNum')); //附件事件

 

 var timeSelect=document.createElement("select");

 

  timeSelect.name=fileID;

 

  var second=document.createElement("option");

 

 second.text="秒钟";

 

 second.value="s"

 

 second.title="时间单位:秒钟";

 

  var minute=document.createElement("option");

 

 minute.text="分钟";

 

 minute.value="min";

 

 second.title="时间单位:分钟";

 

  var hour=document.createElement("option");

 

 hour.text="小时";

 

 hour.value="h";

 

 second.title="时间单位:小时";

 

 timeSelect.add(minute);

 

 timeSelect.add(second);

 

 timeSelect.add(hour);

 

 

 

 var split1=document.createElement("<br/>");

 

 split1.name=fileID;

 

//

 

 var myA= document.createElement("A"); //生成 删除

 

 myA.innerHTML="<font size=2 color='red'></font>";

 

 myA.href="javascript:void(0)";

 

 myA.name=fileID;

 

 myA.attachEvent("onclick",fun(obj,objChild,'del')); //附件事件

 

 

 

 

 //组合

 

 objChild.insertBefore(file);

 

 objChild.insertBefore(timeField);

 

 objChild.insertBefore(timeSelect);

 

 objChild.insertBefore(myA);

 

 objChild.insertBefore(split1);

 

 obj.appendChild(objChild);

 

 obj.refresh;

 

 if(document.getElementById("done")==null){ //若无 完成,则建

 

 var create=document.createElement("a");

 

 create.id="done";

 

 create.innerHTML="<font size=2 color='red'>完成</font>";

 

 create.href="javascript:void(0)";

 

 create.attachEvent("onclick",fun(obj,null,'done'));

 

 document.body.appendChild(create);

 

 document.body.refresh;

 

 }

 

 <state w:st="on"><place w:st="on">ID++</place></state>;

 

}

 

//关联事件(关联到removeElement)

 

var fun=function(parentObj,childArray,flag){

 

 if(flag=="<state w:st="on"><place w:st="on">del</place></state>"){

 

 return function(){

 

 removeElement(parentObj,childArray)

 

 } 

 

 }else if(flag=="done"){

 

 return function(){

 

 done(parentObj);

 

 }

 

 }else if(flag=="checkNum"){

 

 return function(){

 

 parentObj.value=parentObj.value.replace(/[^\d]/g,''); 

 

 }

 

 }

 

}

 

//删除 

 

function removeElement(obj,objChild){

 

 if(obj.contains(objChild)) 

 

 obj.removeChild(objChild);

 

 // 无附件,则无 完成

 

 var objs = obj.getElementsByTagName("div");

 

 if(objs.length==0){

 

  document.body.removeChild(document.getElementById("done"));

 

 }

 

}

 

//鉴定数字

 

function checkNumber(parent){

 

 

 

}

 

function done(obj){

 

 

 

  var paths=new Array();

 

  var path="";

 

  var time=5;

 

  var timeType="m";

 

 var objs = obj.getElementsByTagName("div");

 

 //smil header

 

 var smil = "<?xml version='1.0' encoding='UTF-8'?>"

 

 + "<smil>"

 

 + "<head>"

 

 + "<layout>"

 

 + ". <root-layout width='126' height='126'/>"

 

 + "..<region id='Text' top='0%' left='0%' height='100%' width='100%'/>"

 

 + "..<region id='Image' top='0%' left='0%' height='100%' width='100%'/>"

 

 + ".</layout>" + "</head>" +

 

  "<body>";

 

 

 

 for(i=0;i<objs.length;i++){

 

 for(j=0;j<objs[i].children.length;j++){

 

 var one=objs[i].children[j];

 

 //非空

 

 if(one.nodeName=="INPUT"&&one.value==""){

 

 one.focus();

 

 return; 

 

 }

 

 

 

 if(one.nodeName=="INPUT"&&one.getAttribute("type")=="file"){

 

 path=one.value; 

 

 }else if(one.nodeName=="INPUT"&&one.getAttribute("type")=="text"){

 

 time=parseInt(one.value);

 

 }else if(one.nodeName=="SELECT"&&one.getAttribute("type")=="select-one"){

 

 timeType=one.value;

 

 } 

 

 }

 

 //放文件路径

 

 paths[i]=path;

 

 //smil body

 

 var fName=fso.getFileName(path);

 

 end=fName.substr(fName.indexOf(".")+1);

 

 if(end=="txt"){

 

 smil+="<par dur='"+time+timeType+"'><text src='"+fName+"' region='Text'/></par>"; 

 

 }else if(end=="gif"||end=="jpg"||end=="jpeg"){

 

 smil+="<par dur='"+time+timeType+"'><img src='"+fName+"' region='Image'/></par>"; 

 

 }else if(end=="wav"||end=="mid"){

 

 smil+="<par dur='"+time+timeType+"'><audio src='"+fName+"'/></par>"; 

 

 }

 

 }

 

 smil+="</body></smil>";

 

 

 

 //当前目录生成彩信目录

 

 var str=window.prompt("输入彩信名称如","aaa");

 

 if(str==null||str==""){

 

 return;

 

 }

 

 var basePath=fso.GetAbsolutePathName("")+"/"+str;

 

 

 

 if(fso.FolderExists(basePath)){//存在,1:覆盖,2:删除,3重命名

 

 if(confirm("目录已存在,确定要覆盖吗?")){

 

 fso.deleteFolder(basePath); 

 

 }else{

 

 str=window.prompt("输入彩信名称如","bbb");

 

 if(str==null||str==""){

 

 return;

 

  }

 

 basePath=fso.GetAbsolutePathName("")+"/"+str;

 

 }

 

 }

 

 

 

  var dir=fso.createFolder(basePath);

 

  //copy文件

 

  for(i=0;i<paths.length;i++)

 

   fso.copyFile(paths[i],dir+"/",true);

 

 

 

 //生成smil

 

 var sfile=fso.createTextFile(dir+"/a.smil")

 

 sfile.write(smil);

 

 sfile.close();

 

 

 

 
alert("彩信所在目录:"+dir);

 

}

 

</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值