打开迅雷top歌曲50批量下载网页,点击下载资源,下载选中连接是怎么作的?
打开源文件看到如下代码:
<a href="#" onClick="batchDownload();return false;">下载资源</a>
望高手指教!!!急急急!!给点思路也给分。

解决方案 »

  1.   

    参考下载页面:
    http://blog.xunlei.com/web/category.html?uin=popularmusic&category_id=10
      

  2.   


    它的实现是跟迅雷的调用有关的,迅雷可以用Thune:... 这样的地址来引用资源,从而调用迅雷软件下载。所以 JavaScript 处理的就是跟迅雷打交道,假如你有自己的客户端,你也可以用JS指引浏览器调用客户端。
      

  3.   

    它的这个batchDownload()函数如下,你可以研究一下
    代码地址是http://blog.xunlei.com/js/category.js
    它里面调用了Thunder.batchDownload(selected, top.location.href);
    Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
    这样的方法,这方法应该就是调用迅雷下载的
    function batchDownload(){
    var selected = [];
    resources.each(function(eachRes){
    if(eachRes.checked)
    selected.push({cid:eachRes.cid, url:eachRes.url, refer:eachRes.refer, name:eachRes.res_name.revert()});
    });
    if(selected.empty()){
    alert("没有资源选中");
    return;
    }
    try{
    Thunder.batchDownload(selected, top.location.href);
    return false;
    }catch(e){}
    return true;
    }function onClick(index, leftMouse){
        var data = resources[index];
        if(!leftMouse){
    Thunder.setParameter(data.cid, data.url, data.refer, location.href);    
    return true;
    }
    if(data.from_copartner && data.from_copartner.toLowerCase() == "true"){
    window.open(data.refer);
    return false;
        }
    try{
        Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
        return false;
    }catch(e){}
    return true;
    }
      

  4.   

    不需要,只要你本机装了迅雷就行,你看它的网页上就是直接调用的,而且JAVASCRIPT是对本机操作的,和服务器没有关系的,
    Thunder.batchDownload(selected, top.location.href);
    这个是批量下载的,里面的selected是个数组,存在里面的数值形式就是data.cid, data.url, data.refer, data.res_name.revert(),  Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
    这个就是下载单个文件的,好好研究一下上面的代码,应该不会很难的
      

  5.   

    resources.each(function(eachRes)是什么意思???????????
      

  6.   

    这是ASP的转化方法,JSP的我找不到,不过转化方法是一样的
    <%
    dim wz
    wz=request.form("url")
    if trim(wz)<>"" then
    response.write"采集真实地址如下: (<A href='xunleiurl.asp'><STRONG>返回继续转换</STRONG></A>)<br>"
    wz = replace(wz,VBCRLF,"")'转换回车为空
    wz = replace(wz," ","")'转换空格为空
    wz=split(wz,"http://wstatic.xunlei.com/web/content.htm?cid=")
    for i=1 to ubound(wz)
    iParentDir = Dec(left(wz(i),2))
    iChildDir = Dec(mid(wz(i),3,2))
    Url="http://rstatic.xunlei.com/resource_data/"&iParentDir&"/"&iChildDir&"/"&wz(i)&".htm"
    response.write url&"<br>"
    next%>
    <%else%>
    <form name="form1" method="post" action="">
     请输入列表地址:<br>
      <textarea name="url" cols="100" rows="20" id="url"></textarea>
      <br><br>
      <input type="submit" name="Submit" value="转 换">
    </form> <br>一行一个,格式如下:<br>
    http://wstatic.xunlei.com/web/content.htm?cid=800110EB1886866CB11EF314B5DFB7DCB91AE5CA<br>
    http://wstatic.xunlei.com/web/content.htm?cid=ACC4D0660AE297A3A62FD3720B330296B57E64B7
    <%end if%>
    <%
    Public Function Dec(Hex)
    Dim i
    Dim B
    For i = 1 To Len(Hex)
    Select Case Mid(Hex, Len(Hex) - i + 1, 1)
    Case "0": B = B + 16 ^ (i - 1) * 0
    Case "1": B = B + 16 ^ (i - 1) * 1
    Case "2": B = B + 16 ^ (i - 1) * 2
    Case "3": B = B + 16 ^ (i - 1) * 3
    Case "4": B = B + 16 ^ (i - 1) * 4
    Case "5": B = B + 16 ^ (i - 1) * 5
    Case "6": B = B + 16 ^ (i - 1) * 6
    Case "7": B = B + 16 ^ (i - 1) * 7
    Case "8": B = B + 16 ^ (i - 1) * 8
    Case "9": B = B + 16 ^ (i - 1) * 9
    Case "A": B = B + 16 ^ (i - 1) * 10
    Case "B": B = B + 16 ^ (i - 1) * 11
    Case "C": B = B + 16 ^ (i - 1) * 12
    Case "D": B = B + 16 ^ (i - 1) * 13
    Case "E": B = B + 16 ^ (i - 1) * 14
    Case "F": B = B + 16 ^ (i - 1) * 15
    End Select
    Next
    Dec = B
    End Function
    %>