Baidu Musicbox 用到的ajax代码

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);
}

(0)

相关推荐

  • Baidu Musicbox 用到的ajax代码

    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

  • jQuery ajax(复习)—Baidu ajax request分离版

    你没有看错标题,本文的确是在讲Baidu ajax,不过是很久很久以前的版本了. 由于jQuery ajax模块有800+行,而核心函数jQuery.ajax就有380+行,直接分析这段代码很容易被代码逻辑弄晕. 所以我们先分析一段简单的ajax代码,来自早期的百度七巧板项目. 通过这个来先复习一遍ajax的知识. baidu.ajax.request分离版 复制代码 代码如下: /** * 发送一个ajax请求 * @author: allstar, erik, berg * @name aj

  • Ajax读取数据之分页显示篇实现代码

    我觉得还是有必要把我的ajax分页呈现给大家.我先讲一下这个ajax分页的实现核心,然后我们再看实例效果.所谓的ajax分页与传统的数据分页,在服务端的代码基本上是一样的.我们主要做的是使用ajax在不刷新的情况下,将请求的页码,和每页要显示的条数发送给服务端的处理网页.大家点击这个网址就可以看到要请求的数据:"ajax_page.asp?action=read&pagecount=3 & current_page=1" 在这段URL里,pagecount代表每页要显示

  • asp.net+Ajax 文本文件静态分页实现代码

    服务端部分 ,文本文件分页的类.主要在流中处理.当然我看过网上的用</br> 关键字进行分页的 个人觉得不是所有时候都能满足要求,所一自己写了这个,还是费了点时间,主要在于本人太笨,基础很差.希望大家个出更好的建议 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Txt { public class TxtPager { public

  • 实例代码讲解ajax实现的无刷新分页

    1.Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加载页面而出现的空白状态: 2.那么,Ajax 无刷新页面是运行在动态页面(.php)?还是静态页面(.html/.htm/.shtml)?答案是:静态页面: 3.实现原理:通过前端 JS 脚本程序与 Ajax 相结合取得从动态页面返回的数据,并显示. 现在什么都讲究一个无刷新,就连分页也是如此,下面是小编日常整理的关于一段无刷新代码,希望能够帮到大家. 代码如下: 一.html代码部分

  • ajax与302响应代码测试

    在ajax请求中,如果服务器端的响应是302 Found,在ajax的回调函数中能够获取这个状态码吗?能够从Response Headers中得到Location的值进行重定向吗?让我们来一起看看实际情况.使用jquery的$.ajax()发起ajax请求的javascript代码如下: 复制代码 代码如下: $.ajax({    url: '/oauth/respond',    type: 'post',    data: data,    complete: function(jqXHR

  • 基于Django框架利用Ajax实现点赞功能实例代码

    概要: 要实现点赞功能,需要实现的有:谁进行的点赞.什么时候进行点赞.点赞的对象是谁.每一个对象的点赞数量是多少.点赞过后还需要能够取消点赞,为了是点赞后的信息能够及时的显示在前端页面,就需要使用Ajax来异步请求数据,实现实时显示. 下面话不多说了,来随着小编一起看看详细的介绍吧 模型分析: 创建的模型需要记录的数据有:点赞者.点赞对象.点赞时间.点赞的数量,由于前面三个属性主要用于记录点赞的状态,而点赞数量主要用于记录某篇文章的点赞数量,所以这里最好把点赞数量单独放在一个模型中.这里就创建了

  • Js中使用hasOwnProperty方法检索ajax响应对象的例子

    经常使用百度搜索的同学,一定不会忽视输入框的下拉索引,它是如此方便,然而得天独厚的条件使得这项异步技术多少面临些考验,高并发的服务端请求督促着他们的前端攻城师必须尽可能地减少发送ajax的次数.听起来似乎与本文无关,但并不是这样.首先就暂且让我们为百度免费做个广告吧.在百度首页输入"前端"一词,利用chromebug可以很轻松地看到所发送的响应,结果显示如下: 复制代码 代码如下: window.bdsug.sug({q:'前端';,p:false,s:['前端开发','前端工程师',

  • AJAX 简介及入门实例

    对于一个像我一样刚刚接触Web开发且无多少实际项目经验的新手而言,AJAX技术显得复杂而又深奥.经过两天的baidu.google,我对AJAX的基本原理有了一个大致的认识,在此总结一下. 1. 什么是AJAX? AJAX全称是异步的JavaScript和XML,是Asynchronous JavaScript and XML的缩写.AJAX技术用于创建交互式网页应用的网站开发,至于何为异步,后文会有解释. 1.1 桌面应用程序和Web应用程序 在详细讨论AJAX技术之前,需要先知道AJAX技术

  • Ajax+ASP和Flash+ASP数据读取取方法有些相似的实现方法

    Ajax+ASP和Flash+ASP数据存取方法两种数据存取方法差不多.===============================下面是一个ChatRoom的Ajax部分代码:var ajaxHttpRequest = false;function ajaxInit() { if(window.XMLHttpRequest) { //Mozilla, Opera, ...  ajaxHttpRequest = new XMLHttpRequest();  if(ajaxHttpRequest

随机推荐