利用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.mepachi.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(#替换为@)。期待你的好消息!
北京pk10改单软件下载 北京pk10代理赚钱吗 北京pk10购买 上海时时乐方法 北京pk10冠军8码计划 北京pk10 冠亚 遗漏
pk10冠军技巧5码公式 pk10冠军技巧5码公式 北京赛车pk10奖金规则 上海时时乐开奖结果
北京赛车pk10冠军公式 北京pk10冠亚军技巧 pk10冠军技巧5码公式 北京赛车pk10冠军公式 北京pk10冠军技巧 北京赛车pk10冠军公式
北京pk10高手技术分享 上海时时乐走势图连线 pk10北京赛车高手论坛 北京快乐8单双骗局
早餐早点店加盟 我想加盟早点 上海早点加盟 湖北早餐加盟 包子早餐加盟
早餐饮品加盟 上海早点 绿色早餐加盟 早点面条加盟 特色早餐店加盟
早餐包子加盟 早点加盟商 五芳斋早点怎样加盟 学生早餐加盟 早点面条加盟
中式早餐店加盟 移动早点加盟 早餐加盟什么好 五芳斋早餐加盟 我想加盟早点
湖北11选5开奖结果 足彩310 黑龙江11选5直播 北京pk10官网开奖结果 中国福彩22选5开奖结果
捕鱼达人技巧 幸运农场下载 360黑龙江十一选五组走势图 河南22选5开奖结果查询 内蒙古11选5前2走势图
时时彩开奖 极速时时彩是国家的吗? 宁夏11选5怎么兑奖 辽宁35选7规则 宁夏十一选五走势图电子版
江苏快三走势图 白小姐论坛 中国德州扑克比赛 75秒极速时时彩有假吗 吉林11选5预测