日期:2014-05-16  浏览次数:20357 次

求解!JS ajax 问题
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
%>