当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > Baidu Musicbox 用到的ajax代码

AJAX技术
一个简单的ASP+AJAX留言本源码下载
IE7下ajax之open Method New的说明
ASP+Ajax实现无刷新评论简单例子
AJAX的阻塞及跨域名解析
[js]一个获取页面ip的正则
AJAX乱码解决新方法
也写一个Ajax.Request类附代码
AJAX简历系统附js文件
Ajax留言本源码 提供下载了
找到一款不错的基于AJAX留言板源码(PHP版、ASP版)提供下载了
Ajax 学习资源 中外都有
本人ajax留言板的源程序 不错的应用js
xmlhttp 乱码 比较完整的解决方法 (UTF8,GB2312 编码 解码)
AJAX集天气\IP\多国语言翻译MP3(可同步LRC歌词显示)\万年历查询通
AJAX缓存问题的两种解决方法(IE)
AJAX 常用函数创建XMLHTTP对象,区别IE,Mozilla浏览器
Ajax的小贴士使用小结
用ajax动态加载需要的js文件
XMLHTTP多浏览器兼容性写法
PJBLOG中用到的ajaxjs.几个简单的函数

AJAX技术 中的 Baidu Musicbox 用到的ajax代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-13   浏览: 59 ::
收藏到网摘: n/a

var names;
var Cs, St;
var rorw="";
var lrcT;
function getname(songname){
if(songname==""){
names=$("name").value;
}else{
names=songname;
}
geturl();
}
function geturl(){
AJAXCALL("inc/songurl.asp?type=url1&keyword="+names,"musiclist","isXML=true");
addbox(names);
}
function top(){
AJAXCALL("inc/songlist.asp?ac=new","toplist","isXML=true");
}
function toplist(doc){
var items=getElementsByClass(doc,"item");
var linker=new Array();
var linkers=new Array();
var tmp="<ul>";
for(var i=0;i<items.length;i++){
if(getTagValue(items[i], "singer")=="")
{
linker[i]="";
linkers[i]="";
}
else
{
linker[i]="("+getTagValue(items[i], 'singer').replace(/ /g," ")+")";
linkers[i]=" "+getTagValue(items[i], 'singer').replace(/ /g," ");
}
var d=i+1;
tmp+='<li>'+d+'. <a href=javascript:getname("'+getTagValue(items[i], 'songname').replace(/ /g," ")+linkers[i]+'") title="'+getTagValue(items[i], 'songname').replace(/ /g," ")+linker[i]+'">'+getTagValue(items[i], 'songname').replace(/ /g," ")+linker[i]+'</a></li>';
}
tmp+="</ul>";
$("toplist").innerHTML=tmp;
}
function s2(){
AJAXCALL("inc/songlist.asp?ac=all","s3","isXML=true");
}
function s3(doc){
var items=getElementsByClass(doc,"item");
var linker=new Array();
var linkers=new Array();
var tmp="<ul>";
for(var i=0;i<items.length;i++){
if(getTagValue(items[i], "singer")=="")
{
linker[i]="";
linkers[i]="";
}
else
{
linker[i]="("+getTagValue(items[i], 'singer').replace(/ /g," ")+")";
linkers[i]=" "+getTagValue(items[i], 'singer').replace(/ /g," ");
}
var d=i+1;
tmp+='<li>'+d+'. <a href=javascript:getname("'+getTagValue(items[i], 'songname').replace(/ /g," ")+linkers[i]+'") title="'+getTagValue(items[i], 'songname').replace(/ /g," ")+linker[i]+'">'+getTagValue(items[i], 'songname').replace(/ /g," ")+linker[i]+'</a></li>';
}
tmp+="</ul>";
$("topalllist").innerHTML=tmp;
}
function musiclist(doc){
var items=getElementsByClass(doc,"item");
var tmp="<ul>";
for(var i=0;i<22 && i<items.length;i++){
var d=i+1;
type=getTagValue(items[i], 'type');
tmp+='<li> <img src="img/list.gif" /> <a title="试听点 '+d+' ('+type+')" href=javascript:play("'+getTagValue(items[i], 'type')+'","'+getTagValue(items[i], 'link').replace(/ /g,' ')+'")>'+names.replace(/ /g,' ')+' ('+type+')</a></li>';
}
tmp+="</ul>";
$("list").innerHTML=tmp;
$("msg").style.display="none";
play(getTagValue(items[0], "type"),getTagValue(items[0], "link"));
}
function play(obj,url){
initLrc();
$("guanxin").style.display="none";
$("msg").style.display="block";
AJAXCALL("inc/songurl.asp?type=url2&keyword="+url+"&attach="+obj,"gotoplay","isXML=true");
AJAXCALL("inc/lyrics.asp?song="+names,"getlrc","isXML=true");
}
var tl;
function getlrc(doc){
tl="";
var items=getElementsByClass(doc,"item");
var tmp="<div id=LrcDiv class=LrcDiv>";
for(var i=0;i<items.length;i++){
tmp+='<div class=div id=T_'+getTagValue(items[i], 'time')+' onclick=To(\''+getTagValue(items[i], 'time')+'\')>'+getTagValue(items[i], 'lrc')+'</div>';
tl+=getTagValue(items[i], 'time')+"|";
}
tmp+="</div>";
$("lrc").innerHTML=tmp;
}
function gotoplay(docs){
var type=getTagValue(docs, "type");
var link=getTagValue(docs, "link");
if(type=="rm" || type=="ra" || type=="ram" || type=="rmvb" || type=="mpga" || type=="mp4" || type=="3gp")
$("players").innerHTML=realplayer(link);
else
$("players").innerHTML=mdplayer(link);
var link3=cuturl(link);
$("msg").style.display="none";
$("wmaurl").innerHTML="歌曲出处: <a href="+link.replace(/ /g," ")+" target='_blank' title='点右键另存:"+names.replace(/ /g," ")+"'>"+link3.replace(/ /g," ")+"</a>";
setTimeout(guanxin,1000);
playobj();
}
function initLrc(){
clearTimeout(lrcT);
rorw="";
$("players").innerHTML="";
$("lrc").innerHTML="";
St=0;
Cs=0;
}
function playobj(){
if($("MPlayer"))
{
rorw="wmp";
ldL();
}
else if($("RPlayer"))
{
rorw="rmp";
try { RPlayer.SetWantErrors(true); } catch(hh){}
ldL();
}
else
playobj();
}
function guanxin(){
$("guanxin").style.display="block";
setTimeout(guanxin2,10000);
}
function guanxin2(){
$("guanxin").style.display="none";
}
var player;
function mdplayer(str){
player='<object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" id="MPlayer" width="100%" height="64"><param name="url" value="'+str+'"><param name="enablecontextmenu" value="0"><param name="enableerrordialogs" value="0"></object>';
return player;
}
function realplayer(str){
player='<object classid="clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa" id="RPlayer" width="100%" height="60"><param name="src" value="'+str+'"><param name="controls" value="controlpanel,statusbar"><param name="autostart" value="true"></object>';
return player;
}
function cuturl(song_url){
var len=getStrActualLen(song_url);
var MAX_DISP_LEN=40;
if(len<=MAX_DISP_LEN) return song_url;
var disp_song_url=song_url;
var pos1=song_url.indexOf("://");
if(pos1>0){
disp_song_url=song_url.substring(pos1+3,len);
var pos2=disp_song_url.indexOf("/");
if(pos2>0) disp_song_url=song_url.substring(0,pos1+pos2+4);
var len2=MAX_DISP_LEN-3-getStrActualLen(disp_song_url);
if(len2>0) disp_song_url=disp_song_url+'...'+song_url.substring(len-len2,len);
return disp_song_url;
}
}
function getStrActualLen(sChars){
return sChars.replace(/[^\x00-\xff]/g,"xx").length;
}
function AJAXCALL(url,handleResponse,param){
var isXML=false;//false:html or true:xml
var isCache=false;//false:no-cache or true:cache
var method="GET";//GET or POST
var attach="";
if(param){
re = / /g;
param=param.replace(re, "");
var tmp=param.split(",");
for(var i=0;i<tmp.length;i++){
var pa=tmp[i].substr(0,3);
var ct=tmp[i].split("=")[1];
switch (pa){
case "isX":
if(ct=="true"){
isXML= true;
}else{
isXML= false;
}
break;
case "isC":
if(ct=="true"){
isCache= true;
}else{
isCache= false;
}
break;
case "met":
method=ct;
break;
case "att":
attach=ct;
break;
}
}
}
if(!isCache){
var t=new Date().getTime();
if(url.indexOf("?")>0){
url+="&t="+t;
}else{
url+="?t="+t;
}
}
var postdata=null;
if(method=="POST"){
purl=url.split("?");
url=purl[0];
postdata=purl[1];
}
RequestHTTP(url,handleResponse,method,isXML,postdata,attach);
}
function RequestHTTP(burl,rdRandleResponse,bmethod,bXML,Formdata,attach){
var http_request = false;
function doHttpRequest(){
if (window.XMLHttpRequest){
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType){
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject){
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e){
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){}
}
}
if (!http_request){
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange=handleStateChange;
http_request.open(bmethod,burl,true);
if(Formdata){
http_request.setRequestHeader("Content-Length",Formdata.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(Formdata);
}else{
http_request.setRequestHeader("Content-Type","text/html");
http_request.send(null);
}
}
function handleStateChange(){
if(http_request.readyState==4 && http_request.status==200){
var response_content;
if(bXML){
response_content=http_request.responseXML;
}else{
response_content=http_request.responseText;
}
if(typeof rdRandleResponse == "function"){
rdRandleResponse(response_content, attach);
}else{
eval(rdRandleResponse+"(response_content,attach)");
}
}
}
doHttpRequest();
}
function getTagValue(doc, tag){
var elems = doc.getElementsByTagName(tag)[0].firstChild.nodeValue;
return elems;
}
function $(obj){
return document.getElementById(obj);
}
function getElementsByClass(node,tag){
var els = node.getElementsByTagName(tag);
return els;
}
歌词函数:
复制代码 代码如下:

function setcookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getcookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
setcookie("box",getcookie("box"));
function addbox(name){
var a1=name+"|*|";
var box=getcookie("box");
box=box.replace(a1,"");
var value=a1+box;
setcookie("box",value);
listbox();
}
function delbox(name){
var del=name+"|*|";
var s=getcookie("box");
s = s.replace(del, "");
setcookie("box",s);
listbox();
}
function listbox(){
var tmp="";
var s2=getcookie("box");
var s3=s2.split("|*|");
var s4=s3.length-1;
if(s4>8) $("boxlist").style.height="139px";
for(var i=0;i<s4;i++){
tmp+="<div id=\"box\"><div id=\"del\" style=\"float: right;\"><span onclick=javascript:delbox('"+s3[i]+"')>删除</span></div><div id=\"boxtitle\"><a href=javascript:getname('"+s3[i]+"')>"+s3[i]+"</a></div></div>";
}
$("boxlist").innerHTML=tmp;
}
function GetEBID(id){return document.getElementById(id);}
function To(t){
if(rorw=="") return;
if(rorw=="rmp" && RPlayer.GetPlayState()==3) RPlayer.SetPosition(t*1000);
if(rorw=="wmp" && MPlayer.playState==3) MPlayer.controls.CurrentPosition=t;
}
function lrcrun(){
var rtl="|"+tl;
if((rtl.indexOf("|"+Cs+"|")) != -1){
GetEBID("LrcDiv").scrollTop=GetEBID("LrcDiv").offsetTop-parseInt(GetEBID("LrcDiv").offsetHeight/2)+GetEBID("T_"+Cs).offsetTop+10;
GetEBID("T_"+St).className="";
GetEBID("T_"+Cs).className="b";
St=Cs;
}
}
function ldL(){
if(rorw=="rmp" && RPlayer.GetPlayState()==3) {Cs=Math.floor(RPlayer.GetPosition()/1000); lrcrun();}
if(rorw=="wmp" && MPlayer.playState==3) {Cs=Math.floor(MPlayer.controls.CurrentPosition); lrcrun();}
lrcT=setTimeout("ldL()", 10);
}