利用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.svdns.cn/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在线预测 上海时时乐开奖彩票控 河南快赢481直播 北京快乐8提早预测 北京快乐8一天多少期
pk10冠军技巧5码公式 北京pk10冠军选号技巧 上海时时乐杀号 河南481走势图200
北京pk10冠军技巧 北京pk10冠军技巧 北京pk10冠军选号技巧 北京pk10冠军选号技巧 北京pk10冠军技巧
北京pk10计划qq群大全 上海时时乐开奖走势图 北京pk10官网 北京中和致信
四川早点加盟 早点快餐加盟店 早餐小吃店加盟 北京早餐加盟 河南早餐加盟
知名早餐加盟 清真早点加盟 早餐项目加盟 特许加盟 特色早点加盟店排行榜
早餐加盟好项目 北京早点小吃培训加盟 早餐类加盟 上海早餐加盟 早点招聘
早点工程加盟 清真早点加盟 早餐粥车 北京早点 早餐店加盟
福彩36选7开奖结果今天 重庆时时彩代理返点什么意思 重庆时时彩代理注册 乐趣彩票怎么提现不了 秒速赛车彩票怎样包赢
新宝娱乐城体育打不开 福建时时彩官方开奖 体彩11选五 宁夏十一选五官网 平特王日报自动更新
2013时时彩平台送彩金 猎豹彩票系统 云南十分app l辽宁十一选五群 幸运农场开奖结果查询
上海快三开奖结果查询 重庆五分彩是合法的吗 陕西11选五走势图 150期一波中特 北京地铁图高清可放大