利用XMLHTTP显示最新文章列表
北京pk10冠军技 发布时间:03-31 来源:鹏鹏编程网 浏览:71次
    Donews Blog的多数模版都没有显示最新文章列表的功能,下面是利用XMLHTTP技术实现这个功能的思路和代码,效果见左侧的“最新文章”一栏。因为Donews Blog和Discuz论坛一样,不同的模版各搞各的,无法给出统一的变量名(HTML Tag的ID值),因此需要在代码的基础上用CSS修饰以产生合适的效果。

  思路和技术背景

  思路很单纯,直接用XMLHTTP读出Blog的RSS文件,取出最新的文章插入到提前准备好的HTML Tag中即可。

  XMLHTTP是微软上世纪为自己的Web应用的某些效果发明的技术,去年大喇叭们给这种技术(其实是效果)起了个新名字叫Ajax,用来赞美Google的几个Web应用,却把微软扔一边了。随着微软、Firefox和Opera把XMLHTTP集成到各自的浏览器中,Web开发者不需要让用户下载ActiveX,只需要用喜欢的Web脚本直接调用即可,Ajax效果开始得以普及。

  原始代码 

<h3 class="listtitle">最新文章 <span>(<a href="http://blog.donews_com.junaiyi.com/concorde/archive/2006/02/15/727247.aspx">如何实现?</a>)</span></h3>
<ul class="list" id="my_last_post"></ul><ul class="list"><li>
<script type="text/javascript"><!--
var xmlhttp = false;
function load_rss()
{
  xmlhttp = false;
  if (window.XMLHttpRequest)
  {
    xmlhttp = new XMLHttpRequest();
    if (xmlhttp.overrideMimeType)
    {
       xmlhttp.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject)
  {
    try
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try 
      {
         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
      }
    }
  }
  if(!xmlhttp)
  {
    return;
  }
  xmlhttp.onreadystatechange = proc_rss;
  xmlhttp.open('GET', '/concorde/rss.aspx', true);
  xmlhttp.send(null);
}

function proc_rss()
{
  if (xmlhttp.readyState == 4) 
  {
    if (xmlhttp.status == 200) 
    {
      var items = xmlhttp.responseXML.getElementsByTagName('item');
      var l = 6;
      if(items.length < 6)
      {
        l = items.length;
      }
      var html = '';
      for (var i = 0; i < l; i++)
      {
        html = html + get_item(items, i);
      }
      var obj = document.getElementById('my_last_post');
      if(obj)
      {
        obj.innerHTML = html;
      }
    }
  }
}

function get_item(items, id)
{
  var link = items[id].getElementsByTagName('link').item(0).firstChild.nodeValue;
  var title = items[id].getElementsByTagName('title').item(0).firstChild.nodeValue;
  var item = '<li class="listitem"><a href="' + link + '">' + title + '</a></li>';
  return item;
}
load_rss();
file://-->
</script>


  代码第二行有一个开放的<ul class="list"><li>,是用来关闭下面的代码(写在Donews Blog的模版里);代码里的'/concorde/rss.aspx'需要修改为自己或别人的Blog RSS(但不能用blog.donews.com域名之外的XML,如FeedBunrer包裹的);最后把代码放在“选项 » 配置 » 公告”中合适的位置即可。为修饰显示效果,可能需要配合合适的CSS代码。此外建议在“自定义CSS样式”中加上:.listitem{word-wrap:break-word;overflow: hidden;} 这样可以防止评论在IE中撑大页面,在Firefox中则是隐藏溢出的文字。
如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!
北京快乐8玩法金木 北京快乐8是天天开奖吗 北京pk10单吊 上海时时乐助赢软件 北京快乐8网易 北京pk10公式介绍
北京pk10冠亚军技巧 北京pk10冠军选号技巧 北京pk10冠军选号技巧 北京pk10七码死公式 时时乐开奖走势图
北京pk10冠军选号技巧 北京pk10冠亚军技巧 北京pk10猜冠军技巧 北京pk10冠军走势图 北京pk10猜冠军技巧
上海时时乐组选走势图 征程手游五行玩法 北京赛车pk10官网直播 高频彩联盟pk10wenet
早餐餐饮加盟 早餐店加盟 酸奶加盟 清真早点加盟 早餐店加盟哪家好
杨国福麻辣烫加盟费 中式早餐加盟 上海早餐加盟 品牌早餐店加盟 传统早餐店加盟
网吧加盟 安徽早餐加盟 早点快餐加盟店 天津早点小吃培训加盟 安徽早点加盟
美式早餐加盟 灯饰加盟 早餐加盟排行榜 五芳斋早点怎样加盟 新尚早餐加盟
广西快乐十分钟走势图 赛车现场直播 北京pk10开奖视频 浙江11选5走势图爱彩人 pk10开奖记录皇家
幸运28开奖预测 河南快3在线直播 河北11选5推荐号码qq 天津11选5遗漏任选6 名人娱乐平台
河南快赢481计划 传奇私服赌博刷元宝 无敌炸金花 湖北快三一定牛 天津11选5推荐
湖南幸运赛车三月二号 幸运赛车直播视频 六合彩全年资料 竞彩足球比分直播 天津11选5奖金规则