代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
脚本语言
>
DOS/BAT
>
MyHTML Player release v1.1
时间:2021-02-16 10:45:54 | 栏目:
DOS/BAT
| 点击:次
把下面的代码copy到本地,另存为hta文件使用
特点:自动获取baidu歌曲top500并link
使用ajax技术,自动分页
注意:代码中使用了ADODB.Stream对象,可能被杀毒软件判断为恶意。
<html> <head> <title>My HTML Player - By Hutia</title> <hta:application id="app1" singleinstance="yes" contextmenu="yes" sysmenu="yes" windowstate="normal" maximizeButton="no" minimizeButton="yes" applicationName="MyHTMLPlayer" version="1.1" innerBorder="no" caption="yes" showintaskbar="yes" border="thin" /> <meta http-equiv="content-type" content="text/html; charset="gb2312"> <style> body { overflow:auto; font-size:12px; cursor:default; padding:3px; margin:0px; border-width:0px; } #f1 { display:none; } #table01 { font-size:12px; background-Color:black; color:white; text-align:center; float:left; height:300px; } #table01 td{ vertical-align:top; } #MediaPlayer1 { width:300px; height:300px; } #playListTitle { background-Color:#001122; color:white; font-size:12px; font-weight:bold; width:100%; height:16px; padding:2px; } #playList { width:150px; height:280; margin:0px; font-size:12px; background-Color:black; color:white; } #musicList { width:260px; border:buttonface 4px groove; height:200px; float:right; } #musicListTitle { font-size:13px; width:100%; height:20px; background-Color:#C5FFC5; padding:3px; font-weight:bold; } #musicListContent { height:200px; } #musicList .item { width:100%; height:20px; line-height:12px; padding:0px; margin:0px; overflow-y:hidden; } #musicList .item a { color:#773; text-decoration:none; width:180px; height:20px; line-height:12px; padding-top:5px; padding-left:10px; margin:0px; position:relative; overflow:hidden; text-overflow:ellipsis; } #musicListNav { height:18px; } #processBar { position:absolute; width:99%; height:30px; border:buttonface 2px inset; z-Index:99; background-Color:#FFF; bottom:5px; left:5px; padding:5px; } .add2ListBtn { width:18px; line-height:14px; text-align:center; cursor:hand; font-size:14px; font-family:Webdings; } .add2ListBtn2 { width:18px; line-height:14px; text-align:center; cursor:hand; font-size:14px; } </style> <script> //****全局变量定义区************ taskState="loadList"; url="http://list.mp3.baidu.com/topso/mp3topsong.html"; taskURLs=new Array(); taskNames=new Array(); pageSize=10; pageNo=0; currentTask=pageNo*pageSize; maxTask=currentTask+pageSize; windowWidth=740; windowHeight=400; //****初始化组件*************** try{ var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ document.write("<h3>加载失败,组件被禁止</h3>"); } try{ top.moveTo((screen.availWidth-windowWidth)/2,(screen.availHeight-windowHeight)/2); top.resizeTo(windowWidth,windowHeight); }catch(e){} //****过程函数区*************** //---初始化------- function init(){ MediaPlayer1.AutoRewind=false; MediaPlayer1.AutoStart=true; MediaPlayer1.SendPlayStateChangeEvents=true; MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus); initLoadMusic(); } //####关于baidu音乐获取的代码###### //---初始化下载----- function initLoadMusic(){ currentTask=pageNo*pageSize-1; maxTask=currentTask+pageSize; musicListContent.innerHTML=""; processBar.style.display=""; loadBaiduMusic(); } //---开始从baidu下载音乐----- function loadBaiduMusic(){ //如果状态是loadMusic那么从url列表取下载地址 if(taskState=="loadMusic"){ currentTask++; if(currentTask>maxTask||currentTask>taskURLs.length-1){ //下载完成 try{clearTimeout(vbTimer);}catch(e){} processBar.style.display="none"; createNavigate(); return(false); } if(currentTask>taskURLs.length-1){ currentTask--; setTimeout(loadBaiduMusic,1000); return(false); } url=taskURLs[currentTask]; } xmlHttp.open("GET",url,true); xmlHttp.send(); xmlHttp.onreadystatechange=checkXMLHttpState; checkXMLHttpState(); } //----处理下载----- function checkXMLHttpState(){ if (xmlHttp.readyState==4){ if (xmlHttp.status==200){ if(taskState=="loadList"){ taskState="loadMusic"; //分析下载内容生成歌曲地址列表 analyBaiduList(); currentTask=-1; }else{ //获得mp3的真实地址 analyBaiduMusic(); } } loadBaiduMusic(); } } //----分析下载内容生成歌曲地址列表---- function analyBaiduList(){ var strHTML=b2s(xmlHttp.responseBody); var iStart=strHTML.search(/<body/i); var iEnd=strHTML.toLowerCase().indexOf("<\/script",iStart+5); strHTML=strHTML.substring(iStart,iEnd); var fff=document.createElement("Iframe"); fff.id="tempFrame"; fff.style.display="none"; document.body.insertBefore(fff); theWin=eval("tempFrame"); theWin.document.open(); theWin.document.clear(); theWin.document.write(strHTML); theWin.document.close(); for(var i=0;i<theWin.document.links.length;i++){ if(theWin.document.links[i].href.match(/mp3.baidu.com\/m\?tn=baidump3\&ct=/i)&&theWin.document.links[i].parentNode.firstChild==theWin.document.links[i]){ //将url存入taskURLs,歌曲名称存入taskNames taskURLs[taskURLs.length]=theWin.document.links[i].href.replace(/lm=-1/,"lm=0"); taskNames[taskNames.length]=theWin.document.links[i].innerText; } } fff.outerHTML=""; } //----获得mp3的真实地址,添加到music list----- function analyBaiduMusic(){ var strHTML=b2s(xmlHttp.responseBody); var strTxt=taskNames[currentTask]; //匹配URL的正则 var aryURL=strHTML.match(/ http:\/\/[^ ]+ /gi); if(!aryURL){return(false);} var theC=document.createElement("DIV"); theC.className="item"; musicListContent.insertBefore(theC); //获取10个地址以免链接失效 for(var i=0;i<10&&i<aryURL.length;i++){ //每个item的容器 var theD=document.createElement("DIV"); theD.onmouseover=musicList_mouseover; theD.onmouseout=musicList_mouseout; //link元素 var theLink=document.createElement("A"); var strURL=aryURL[i].substring(2,aryURL[i].length-2); theLink.href=strURL; theLink.title=strURL; theLink.innerText=(currentTask+1)+"."+strTxt; if(i>0){theLink.innerText+="."+(i+1);} theLink.onclick=musicList_item_click; theD.insertBefore(theLink); //添加到列表按钮 theButton=document.createElement("Span"); theButton.className="add2ListBtn"; theButton.innerText="1"; theButton.title="添加到列表"; theButton.onclick=musicList_add2ListBtn_click; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theD.insertBefore(theButton); //上卷按钮 theButton=document.createElement("Span"); theButton.className="add2ListBtn"; theButton.innerText="3"; theButton.title="上卷"; theButton.onclick=musicList_scrollUpBtn_click; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theD.insertBefore(theButton); //下卷按钮 theButton=document.createElement("Span"); theButton.className="add2ListBtn"; theButton.innerText="4"; theButton.title="下卷"; theButton.onclick=musicList_scrollDownBtn_click; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theD.insertBefore(theButton); //打开新窗口按钮 theButton=document.createElement("Span"); theButton.className="add2ListBtn"; theButton.innerText="2"; theButton.title="打开新窗口"; theButton.onclick=musicList_newWinBtn_click; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theD.insertBefore(theButton); theC.insertBefore(theD); } } //####关于播放器播放音乐的代码###### //----检查播放器状态------- function checkPlayStatus(oldState,newState){ try{ if(MediaPlayer1.PlayState==0){ MediaPlayer1.detachEvent("PlayStateChange",checkPlayStatus); MediaPlayer1.stop(); if(playList.options.selectedIndex<playList.options.length-1){ playList.options[playList.options.selectedIndex+1].selected=true; }else{ playList.options[0].selected=true; } MediaPlayer1.fileName=playList.value; MediaPlayer1.play(); setTimeout('MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus);',5000); } }catch(e){} } //**********Event Function Area*************** //----------Play List Event Start------------- function playList_dragOver(){ event.returnValue=false; } function playList_dragEnter(){ event.returnValue=false; event.dataTransfer.dropEffect='link'; } function playList_drop(){ strTxt=unescape(event.dataTransfer.getData('Text').split(":")[0]).replace(/\[\+\]/,"");; strURL=unescape(event.dataTransfer.getData('Text').split(":")[1]).replace(/\[\+\]/,"");; playList.options[playList.options.length]=new Option(strTxt,strURL); } function playList_keyDown(){ if(event.keyCode==46){ try{ playList.options[playList.options.selectedIndex].outerHTML=""; }catch(e){} return(false); } if(event.keyCode==13){ playList_dblClick(); return(false); } } function playList_dblClick(){ MediaPlayer1.detachEvent("PlayStateChange",checkPlayStatus); MediaPlayer1.fileName=playList.value; MediaPlayer1.play(); setTimeout('MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus);',1000); } //----------Music List Event Start------------- function musicList_dragStart(){ if(event.srcElement.tagName=='A'){ event.dataTransfer.setData('Text',escape(event.srcElement.innerText)+":"+escape(event.srcElement.href)); }else{ return(false); } } function musicList_mouseover(){ this.style.backgroundColor="#D5EFD5"; } function musicList_mouseout(){ this.style.backgroundColor=""; } function musicList_item_mouseover(){ this.style.color="gold"; } function musicList_item_mouseout(){ this.style.color=""; } function musicList_item_click(){ strTxt=event.srcElement.innerText; strURL=event.srcElement.href; playList.innerHTML=""; playList.options[0]=new Option(strTxt,strURL); playList.options[0].selected=true; event.returnValue=false; playList_dblClick(); return(false); } function musicList_add2ListBtn_click(){ strTxt=event.srcElement.parentNode.firstChild.innerText.replace(/\[\+\]/,""); strURL=event.srcElement.parentNode.firstChild.href; playList.options[playList.options.length]=new Option(strTxt,strURL); return(false); } function musicList_scrollUpBtn_click(){ this.parentNode.parentNode.scrollTop-=20; } function musicList_scrollDownBtn_click(){ this.parentNode.parentNode.scrollTop+=20; } function musicList_newWinBtn_click(){ open(this.parentNode.firstChild.href); } function musicList_nav_click(){ pageNo=this.pageID; musicListNav.disabled=true; this.style.color="#FF0000"; for(var i=0;i<musicListNav.all.tags("span");i++){ musicListNav.all.tags("span")[i].onclick=null; } initLoadMusic(); } //**********Private Functions Lib*************** function b2s(b){ var adodbStream=new ActiveXObject("ADODB.Stream"); adodbStream.Type=1;//1=adTypeBinary adodbStream.Open(); adodbStream.write(b); adodbStream.position=0; adodbStream.Type=2; adodbStream.charset="gb2312"; //adodbStream.charset="_autodetect_all"; var re=adodbStream.readText(); adodbStream=null; return(re); } function createNavigate(){ musicListNav.innerHTML=""; musicListNav.disabled=false; var theMax=taskURLs.length; var theC=document.createElement("span"); musicListNav.insertBefore(theC); theMin=pageNo-4>0?pageNo-4:0; thePageCount=parseInt(theMax/pageSize)+(theMax%pageSize==0?0:1); theMax=pageNo+5<thePageCount?pageNo+5:thePageCount; theButton=document.createElement("span"); theButton.className="add2ListBtn"; theButton.innerText="7"; theButton.pageID=0; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theButton.onclick=musicList_nav_click; theC.insertBefore(theButton); for(var j=theMin;j<theMax;j++){ theButton=document.createElement("span"); theButton.className="add2ListBtn2"; theButton.innerText=j+1; theButton.pageID=j; if(j!=pageNo){ theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theButton.onclick=musicList_nav_click; }else{ theButton.style.color="Blue"; } theC.insertBefore(theButton); } theButton=document.createElement("span"); theButton.className="add2ListBtn"; theButton.innerText="8"; theButton.pageID=thePageCount-1; theButton.onmouseover=musicList_item_mouseover; theButton.onmouseout=musicList_item_mouseout; theButton.onclick=musicList_nav_click; theC.insertBefore(theButton); } </script> <body onload="init();"> <!-- 歌曲列表 --> <div id=musicList ondragstart="musicList_dragStart();"> <div id=musicListTitle>All Music</div> <div id=musicListContent></div> <hr> 分页: <div id=musicListNav></div> <hr> <marquee scrolldelay=50 scrollamount=1> Tips: 把歌曲拖入播放列表 Tips: 无法播放时点击左右箭头更换音乐地址 </marquee> </div> <!-- 状态栏 --> <div id=processBar style="display:none;">Processing...</div> <!-- 播放器 --> <table id=table01> <tr> <td> <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject"> <param name="AudioStream" value="-1"> <param name="AutoSize" value="-1"> <!--是否自动调整播放大小--> <param name="AutoStart" value="0"> <!--是否自动播放--> <param name="AnimationAtStart" value="-1"> <param name="AllowScan" value="-1"> <param name="AllowChangeDisplaySize" value="-1"> <param name="AutoRewind" value="0"> <param name="Balance" value="0"> <!--左右声道平衡,最左-9640,最右9640--> <param name="BaseURL" value> <param name="BufferingTime" value="15"> <!--缓冲时间--> <param name="CaptioningID" value> <param name="ClickToPlay" value="-1"> <param name="CursorType" value="0"> <param name="CurrentPosition" value="0"> <!--当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0--> <param name="CurrentMarker" value="0"> <param name="DefaultFrame" value> <param name="DisplayBackColor" value="0"> <param name="DisplayForeColor" value="16777215"> <param name="DisplayMode" value="0"> <param name="DisplaySize" value="0"> <!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理--> <param name="Enabled" value="-1"> <param name="EnableContextMenu" value="-1"> <!-是否用右键弹出菜单控制--> <param name="EnablePositionControls" value="-1"> <param name="EnableFullScreenControls" value="-1"> <param name="EnableTracker" value="-1"> <!--是否允许拉动播放进度条到任意地方播放--> <param name="Filename" value="" valuetype="ref"> <param name="InvokeURLs" value="-1"> <param name="Language" value="-1"> <param name="Mute" value="0"> <!--是否静音--> <param name="PlayCount" value="10"> <!--重复播放次数,0为始终重复--> <param name="PreviewMode" value="-1"> <param name="Rate" value="1"> <!--播放速度1.0-2.0倍的速度播放--> <param name="SAMILang" value> <param name="SAMIStyle" value> <param name="SAMIFileName" value> <!--选择同时播放(伴音)的歌曲--> <param name="SelectionStart" value="-1"> <param name="SelectionEnd" value="-1"> <param name="SendOpenStateChangeEvents" value="-1"> <param name="SendWarningEvents" value="-1"> <param name="SendErrorEvents" value="-1"> <param name="SendKeyboardEvents" value="0"> <param name="SendMouseClickEvents" value="0"> <param name="SendMouseMoveEvents" value="0"> <param name="SendPlayStateChangeEvents" value="-1"> <param name="ShowCaptioning" value="0"> <!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示--> <param name="ShowControls" value="-1"> <!--是否显示控制,比如播放,停止,暂停--> <param name="ShowAudioControls" value="-1"> <!--是否显示音量控制--> <param name="ShowDisplay" value="0"> <!--显示节目信息,比如版权等--> <param name="ShowGotoBar" value="0"> <!--一条框,在下面,有往下箭头--> <param name="ShowPositionControls" value="-1"> <!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制--> <param name="ShowStatusBar" value="-1"> <!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间--> <param name="ShowTracker" value="-1"> <!--是否显示当前播放跟踪条,即当前的播放进度条--> <param name="TransparentAtStart" value="-1"> <param name="VideoBorderWidth" value="0"> <!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小--> <param name="VideoBorderColor" value="0"> <!--显示黑色框的颜色, 为RGB值,比如ffff00为黄色--> <param name="VideoBorder3D" value="0"> <param name="Volume" value="0"> <!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640,最大0--> <param name="WindowlessVideo" value="0"> <!--如果是0可以允许全屏,否则只能在窗口中查看--> </object> </td> <td> <div id=playListTitle>Play List:</div> <select id=playList size=2 ondragover="playList_dragOver();" ondragenter="playList_dragEnter();" ondrop="playList_drop();" onkeydown="playList_keyDown();" ondblclick="playList_dblClick();"> </select> </td> </tr> </table> <body> </html>
[Ctrl+A 全选 注:
引入外部Js需再刷新一下页面才能执行
]
您可能感兴趣的文章:
一个“灵异”批处理引发的思考加补充说明
Cipher 在 NTFS 卷上显示或改变文件的加密
windows7系统去除快捷方式小箭头BAT脚本分享
DOS下内存的配置方法
dos中RD命令递归删除目录的代码
相关文章
10-08
利用BAT脚本加入域和退出域的代码
12-04
个人学习之作 hta 原创
10-14
DOS命令字典2第1/2页
10-01
干掉进程并删除源文件的批处理bat代码
12-25
cmd批处理转义字符%的详细解释
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长