• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    AJAX初级应用-RSS无刷新聚合器的代码与下载第1/3页
    rss.js
    复制代码 代码如下:

    !--
    //控制ID
    function getId(objId){
        return document.getElementById(objId)
    }
    //链接对应数组,请注明转载自http://www.cnrui.cn/blog
    function urlArrary(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:
                return false
        }
    }
    //侧边栏控制,请注明自http://www.cnrui.cn/blog转载
    function closebar(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转载
    function listen(a){
        getId("prolist").className=a;
    }
    function btnSty(objId,objStyle)
    {
        getId(objId).style.display = objStyle
    }
    //提示窗口控制
    function ifodis(){
        btnSty("loadifo","none");
    }
    function settime(a){
        setTimeout(a,1000);
    }
    function loadtime(){
        getId("loadifo").innerHTML += "."
    }
    //数据入口
    function ent(urlName){
        window.location.hash = urlName
        var frmUrl = saveState(urlName);//写入信息到ifream
        var gamestart = loadrss(urlName);//AJAX数据过程
    }
    //XML数据绑定
    var xmldoc = false;
    function loadrss(urlName){
        var myurl = urlArrary(urlName)
        if(myurl){
            listen("mainbg2");
        //生成随机数,同时限制刷新次数
            var Num=Math.floor(Math.random()*100);
        //定义往址参数
            url = myurl+"?id="+Num;
        //定义为异步传输模式
            xmldoc = false;
        //Mozill,Safari等浏览器时需要创建的XMLHttp类
            if(window.XMLHttpRequest){
                xmldoc = new XMLHttpRequest();
                if(xmldoc.overrideMimeType){
                        xmldoc.overrideMimeType('text/xml');
                }
            }
        //IE浏览器时创建的XMLHttp类
            else if(window.ActiveXObject){
                try{
                    xmldoc = new ActiveXObject("Msxml3.XMLHTTP");
                }
                catch(e){
                    try{
                        xmldoc = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                    catch(e){
                        try{
                            xmldoc = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        catch(e){}
                    }
                }
            }
        //不能创建XMLHTTP类时返回
            if(! xmldoc){
                return false;
            }
        //调用CheckState函数
            xmldoc.onreadystatechange = CheckState;
            xmldoc.open('GET',url,true);
            xmldoc.send(null);
        }else{
            getId("listnum").innerHTML = "您输入的地址错误,请重试!"
        }
    }
    //状态检测
    function CheckState(){
        var response = xmldoc.responseXML.documentElement;
        btnSty("loadifo","block")
    //收到完整的服务器响应
        if(xmldoc.readyState == 1){
            getId("loadifo").innerHTML = "连接服务器"
            }
        else if(xmldoc.readyState == 2){
            getId("loadifo").innerHTML = "开始加载数据"
            }
        else if(xmldoc.readyState == 3){
            getId("loadifo").innerHTML = "正在加载数据"
            settime(loadtime)
            }
        else if(xmldoc.readyState == 4){
    //HTTP服务器响应值成功
            if(xmldoc.status == 200){
    //将服务器返回的字符串写到页面中ID为showdiv的区域
         getId("loadifo").innerHTML = "加载完成"
             settime(ifodis)
             num(response)
            }
            else{
                getId("loadifo").innerHTML = "错误"+xmldoc.status+"点这里刷新";
            }
        }
    }
    //检查数据合法性
    function trydata(nodeName,nodeName2){
        try{
            var nodeV = nodeName.firstChild.nodeValue;
        }catch(e){
            try{
                var nodeV = nodeName2.firstChild.nodeValue;
            }catch(e){
                var nodeV = "没有可用信息"
            }
        }
        return nodeV;
    }
    //记录集总数
    function num(b){
        try{
            var titleNode = b.selectNodes("//rss/channel/title");
            var a = 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; 


    //节目列表显示
    //定义接收指向各个元素的节点信息的变量
    var titleNode,linkNode,categoryNameNode,authorNode,pubDateNode,descriptionNode
    //定义接收元素值的变量
    var titleV,linkV,categoryNameV,authorV,pubDateV,descriptionV
    //分类聚合
    function setlist(a,b)
    {
        var prograNode = b.getElementsByTagName("item");
        var adminlinkNode = b.selectNodes("//rss/channel/link");
        var titleNode = b.selectNodes("//rss/channel/item/title");
        var linkNode = b.selectNodes("//rss/channel/item/link");
        var categoryNode = b.selectNodes("//rss/channel/item/category");
        var authorNode = b.selectNodes("//rss/channel/item/author");
        var pubDateNode = b.selectNodes("//rss/channel/item/pubDate");
        var descriptionNode = b.selectNodes("//rss/channel/item/description");
        var category2sNode = b.selectNodes("//rss/channel/item/dc:subject");
        var author2sNode = b.selectNodes("//rss/channel/item/dc:creator");
        var pubDate2sNode = b.selectNodes("//rss/channel/item/dc:date");
        var listchar=""
    //使用for循环,产生列表信息
        for (i=0; ia; 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>a href='"+linkV+"' target='_blank'>"+titleV+"/a>/h5>span>发表时间:"+pubDateV+"/span>div class='article'>"+descriptionV+"/div>div class='bottom'>文章分类:"+categoryV+" a href='"+adminlinkV+"' target='_blank'>作者:"+authorV+"/a>/div>";
        }
        //将生成的表格输出到页面的DIV元素
        getId("prolist").innerHTML = listchar;
        listen("mainbg")
    }
    //浏览器回退部分
    //重写IFREAM链接,浏览器回退重点
    function saveState(message) {
        var hisFrm = getId("historyFrame")
        hisFrm.src = "blank.html?"+message
    }
    //检测IFREAM
    window.dhtmlHistory = {
        iframeLoaded:function(newLocation){
            var hash = new String(newLocation.search)
            if (hash.length >= 2  hash.charAt(0) == "?"  hash.substring(1) !=delChar()){
                hash = hash.substring(1)
                window.location.hash = hash;
                var hisFrmdata = loadrss(hash)
            }
        }
    }
    //浏览器链接指向部分
    //去除符号,请注明http://www.cnrui.cn/blog转载
    function delChar(){
        var a = window.location.hash
        return     a.substring(1)
    }
    window.onload = function(){
        if(window.location.hash.length >= 2){
            ent(delChar())
        }
    }
    // -->

    123下一页阅读全文
    上一篇:用ajax自动加载blogjava和博客园的rss
    下一篇:Ajax并不神秘:揭下各种Ajax控件和类库的小裤衩
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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