AJAX初级应用-RSS无刷新聚合器的代码与下载第1/3页

秋天的落叶随着秋姑娘翩翩起舞;秋天的落叶随着秋的旋律摇荡;秋天的落叶随着秋的微风留下一片光明的大道。秋天让我们来体会 "自古逢秋悲寂寥 "的凄凉;秋天让我们来体会 "无边落木萧萧下 "的哀愁;秋天让我们来体会 "秋空雁度青天远 "的疏朗。
rss.js

<!--
//控制ID
functiongetId(objId){
returndocument.getElementById(objId)
}
//链接对应数组,请注明转载自http://www.cnrui.cn/blog
functionurlArrary(urlName){
switch(urlName){
case"clear":
return"http://www.cnrui.cn/blog/feed.asp"
case"a-fei":
return"http://www.a-fei.net/blog/rss.xml"
case"ryanxia":
return"http://www.ryanxia.com/blog/feedrss2.asp"
case"awflasher":
return"http://www.awflasher.com/blog/feed.asp"
case"seles":
return"http://www.cnrui.cn/seles/feedrss2.asp"
case"wawa":
return"http://a-fei.net/wawa/blog/rss2.php"
case"dreammx":
return"http://www.dreammx.com/xhyl/feed.asp"
default:
returnfalse
}
}
//侧边栏控制,请注明自http://www.cnrui.cn/blog转载
functionclosebar(targetid,objId){
if(document.getElementById){
target=getId(targetid);
objsty=getId(objId);
if(target.style.display=="none"){
target.style.display="";
main.style.width="800px";
objsty.innerHTML="关闭侧边栏"
}else{
target.style.display="none";
main.style.width="100%";
objsty.innerHTML="开启侧边栏"
}
}
}
//加载变灰,注明自http://www.cnrui.cn/blog转载
functionlisten(a){
getId("prolist").className=a;
}
functionbtnSty(objId,objStyle)
{
getId(objId).style.display=objStyle
}
//提示窗口控制
functionifodis(){
btnSty("loadifo","none");
}
functionsettime(a){
setTimeout(a,1000);
}
functionloadtime(){
getId("loadifo").innerHTML+="."
}
//数据入口
functionent(urlName){
window.location.hash=urlName
varfrmUrl=saveState(urlName);//写入信息到ifream
vargamestart=loadrss(urlName);//AJAX数据过程
}
//XML数据绑定
varxmldoc=false;
functionloadrss(urlName){
varmyurl=urlArrary(urlName)
if(myurl){
listen("mainbg2");
//生成随机数,同时限制刷新次数
varNum=Math.floor(Math.random()*100);
//定义往址参数
url=myurl+"?id="+Num;
//定义为异步传输模式
xmldoc=false;
//Mozill,Safari等浏览器时需要创建的XMLHttp类
if(window.XMLHttpRequest){
xmldoc=newXMLHttpRequest();
if(xmldoc.overrideMimeType){
xmldoc.overrideMimeType('text/xml');
}
}
//IE浏览器时创建的XMLHttp类
elseif(window.ActiveXObject){
try{
xmldoc=newActiveXObject("Msxml3.XMLHTTP");
}
catch(e){
try{
xmldoc=newActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xmldoc=newActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}
}
//不能创建XMLHTTP类时返回
if(!xmldoc){
returnfalse;
}
//调用CheckState函数
xmldoc.onreadystatechange=CheckState;
xmldoc.open('GET',url,true);
xmldoc.send(null);
}else{
getId("listnum").innerHTML="您输入的地址错误,请重试!"
}
}
//状态检测
functionCheckState(){
varresponse=xmldoc.responseXML.documentElement;
btnSty("loadifo","block")
//收到完整的服务器响应
if(xmldoc.readyState==1){
getId("loadifo").innerHTML="连接服务器"
}
elseif(xmldoc.readyState==2){
getId("loadifo").innerHTML="开始加载数据"
}
elseif(xmldoc.readyState==3){
getId("loadifo").innerHTML="正在加载数据"
settime(loadtime)
}
elseif(xmldoc.readyState==4){
//HTTP服务器响应值成功
if(xmldoc.status==200){
//将服务器返回的字符串写到页面中ID为showdiv的区域
getId("loadifo").innerHTML="加载完成"
settime(ifodis)
num(response)
}
else{
getId("loadifo").innerHTML="错误"+xmldoc.status+"点这里刷新";
}
}
}
//检查数据合法性
functiontrydata(nodeName,nodeName2){
try{
varnodeV=nodeName.firstChild.nodeValue;
}catch(e){
try{
varnodeV=nodeName2.firstChild.nodeValue;
}catch(e){
varnodeV="没有可用信息"
}
}
returnnodeV;
}
//记录集总数
functionnum(b){
try{
vartitleNode=b.selectNodes("//rss/channel/title");
vara=b.getElementsByTagName("item").length
titleV=trydata(titleNode(0));
getId("listnum").innerHTML="共有"+a+"篇文章 来源于:"+titleV;
setlist(a,b);
}catch(e){}
}
if(top.location!=self.location)top.location=self.location;
//节目列表显示
//定义接收指向各个元素的节点信息的变量
vartitleNode,linkNode,categoryNameNode,authorNode,pubDateNode,descriptionNode
//定义接收元素值的变量
vartitleV,linkV,categoryNameV,authorV,pubDateV,descriptionV
//分类聚合
functionsetlist(a,b)
{
varprograNode=b.getElementsByTagName("item");
varadminlinkNode=b.selectNodes("//rss/channel/link");
vartitleNode=b.selectNodes("//rss/channel/item/title");
varlinkNode=b.selectNodes("//rss/channel/item/link");
varcategoryNode=b.selectNodes("//rss/channel/item/category");
varauthorNode=b.selectNodes("//rss/channel/item/author");
varpubDateNode=b.selectNodes("//rss/channel/item/pubDate");
vardescriptionNode=b.selectNodes("//rss/channel/item/description");
varcategory2sNode=b.selectNodes("//rss/channel/item/dc:subject");
varauthor2sNode=b.selectNodes("//rss/channel/item/dc:creator");
varpubDate2sNode=b.selectNodes("//rss/channel/item/dc:date");
varlistchar=""
//使用for循环,产生列表信息
for(i=0;i<a;i++)
{
titleV=trydata(titleNode(i))
linkV=trydata(linkNode(i))
categoryV=trydata(categoryNode(i),category2sNode(i))
authorV=trydata(authorNode(i),author2sNode(i))
pubDateV=trydata(pubDateNode(i),pubDate2sNode(i))
descriptionV=trydata(descriptionNode(i))
adminlinkV=trydata(adminlinkNode(0))
//将得到的元素值装载到产生表格的字符串中
listchar+="<h5><arel="nofollow noopener noreferrer" href='"+linkV+"'target='_blank'>"+titleV+"</a></h5><span>发表时间:"+pubDateV+"</span><divclass='article'>"+descriptionV+"</div><divclass='bottom'>文章分类:"+categoryV+" <arel="nofollow noopener noreferrer" href='"+adminlinkV+"'target='_blank'>作者:"+authorV+"</a></div>";
}
//将生成的表格输出到页面的DIV元素
getId("prolist").innerHTML=listchar;
listen("mainbg")
}
//浏览器回退部分
//重写IFREAM链接,浏览器回退重点
functionsaveState(message){
varhisFrm=getId("historyFrame")
hisFrm.src="blank.html?"+message
}
//检测IFREAM
window.dhtmlHistory={
iframeLoaded:function(newLocation){
varhash=newString(newLocation.search)
if(hash.length>=2&&hash.charAt(0)=="?"&&hash.substring(1)!=delChar()){
hash=hash.substring(1)
window.location.hash=hash;
varhisFrmdata=loadrss(hash)
}
}
}
//浏览器链接指向部分
//去除符号,请注明http://www.cnrui.cn/blog转载
functiondelChar(){
vara=window.location.hash
returna.substring(1)
}
window.onload=function(){
if(window.location.hash.length>=2){
ent(delChar())
}
}
//-->

123下一页阅读全文

以上就是AJAX初级应用-RSS无刷新聚合器的代码与下载第1/3页。命运如同一只不停旋转的陀螺,可以扭转它的,只有它自己。更多关于AJAX初级应用-RSS无刷新聚合器的代码与下载第1/3页请关注haodaima.com其它相关文章!

标签: AJAX RSS