http://mbox.dj527.com/
这个 把页面仿下来!! 模版没错!
就是不嫩播放 播放列表都没有!
http://dj.yulel.com/
就显示 载入加..
不管直接用http://mbox.dj527.com/js/js.js
还是保存到本地改JS 都不行!
不管直接用http://mbox.dj527.com/js/js.js 这个!
还是把JS.js保存到服务器上! 列表 播放 都不显示!
http://mbox.dj527.com/list.asp?menu= 这个不是?
播放文件http://mbox.dj527.com/url.asp?id="+id 这个不是?
保存到服务器上改了JS 文件还是不显示!
------解决方案--------------------
1、猜测你是想采集播放。
2、必须通过你的服务器代理,才能解决跨域问题。
3、你要搞清来源网站的数据接口,必须从列表入口页面开始采集。
SUCH AS要采集总排行榜:
在服务器端异步请求“http://www.dj527.com/showlist”,THEN对返回的responseBody(非responseText)进行编码转换解决乱码问题(绝对乱码,这也是服务端代理的重要原因之一),再用正则提取曲目ID和曲目标题。如果A端采用JS,该正则可为 ――
“返回的字符串.str.replace(/<input[^>]+checkbox\D+(\d+)[\S\s]*?font[^>]+>([^<]+)/gi, function($1, $2, $3){Irr.push($2); Nrr.push($3)})”,页面曲目所有ID和标题分别保存到了数组Irr和Nrr中且一一对应。其他A端语言改写下就OK了,匹配模式是一样的,只是语法不同。
4、循环曲目标题数组Nrr,自定义样式生成你想要的播放列表,写出曲目条目,并从“0”开始把数组下标号作为自定义属性(名字如“index”)添加到每一个相应节点。
5、给播放列表委托绑定(delegate)一个“click”事件,点击发生时获取相应节点的属性“index”并把它作为下标索引ID数组Irr得到对应曲目的ID号,再驱动一个动态SCRIPT加载,路径属性SRC:“http://www.dj527.com//Include/GetUrl.php?id=你点击播放列表索引到的雀目ID&ac=lplay”。
6、动态脚本加载OK后,会定义几个变量,其中“u+ID”就是曲目对应的流媒体加载路径。例如:var u16504="mms://wma.dj527.com/dj527.com/dj527/xc/20120319/老歌劲唱万水千山总是情生飞音乐DJ_小辉打造.wma";加载OK后动态拼写嵌入式播放标签就开始播放了。值得注意的是,每首曲子都得由动态脚本加载完成事件驱动拼写播放标签,这样循环播放模式才能够兼容所有浏览器,否则就ONLY FOR IE了。
------解决方案--------------------
再具体点,以简单的ASP为例子。
你首先让客户端AJAX异步访问你放在服务器端的ASP:
- VBScript code
<% Response.buffer = true Response.charset = "gb2312" Response.write Maobj(geter("http://www.dj527.com/showlist"), "<input[^>]+checkbox[\S\s]*?font[^>]+>[^<]+", "^\D+(\d+).+>([^<]+)$") function geter(url) dim http set http = Server.CreateObject("Microsoft.XMLHTTP") http.open "GET", url, false http.setRequestHeader "referer", "dj527.com" http.send() if http.Readystate <> 4 then set http = nothing Exit function end if geter = Bytes(http.responseBody, "gb2312") set http = Nothing if Err.number <> 0 then Err.clear end if end function function Bytes(str, base) dim obj set obj = Server.CreateObject("Adodb.Stream") obj.type = 1 obj.mode = 3 obj.open obj.write str obj.position = 0 obj.type = 2 obj.charset = base Bytes = obj.readText obj.Close set obj = nothing end function function Maobj(strs, x, y) dim re, Match, Matches, str set re = New RegExp re.Pattern = x re.IgnoreCase = False re.global = True set Matches = re.Execute(strs) str = "" for each Match in Matches str = str & Reobj(Match.value, y, "$1=$2") & "┇" next Maobj = str end function %>