利用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.mbvho.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(#替换为@)。期待你的好消息!
河南快赢481软件 北京pk10单双最多连出 北京pk10博彩公司 北京pk10购买技巧 北京pk10从几点开始 北京pk10吊号
北京pk10冠军选号技巧 pk10冠军技巧5码公式 北京pk10冠军走势图 快乐十分任二稳赚技巧 北京pk10定位胆选玩法 北京快乐8平台陷阱
北京pk10冠亚军技巧 pk10冠军技巧5码公式 pk10冠军技巧5码公式 pk10冠军技巧 北京pk10冠亚军技巧
北京pk10杀号 幸运农场实时开奖结果 北京pk10高手技术分享 北京pk10计划苹果版 快乐捕鱼手机版
书店加盟 江西早点加盟 早点加盟排行榜 特许加盟 杨国福麻辣烫加盟费
雄州早餐加盟电话 娘家早点车怎么加盟 早餐加盟哪个好 美式早餐加盟 品牌早点加盟
早点加盟连锁店 豆浆早餐加盟 早餐配送加盟 营养粥加盟 早点面条加盟
加盟 早点 早餐饮品加盟 酸奶加盟 早点餐饮加盟 中式早点快餐加盟
六合彩图库 时时彩大小单双稳赚法 pk10赛车分析官网 黑龙江p62走势图表 江西多乐彩开奖结果
香港六合彩免费资料 江苏11选五开奖结果 排三返奖比例历史记录 浙江快乐12app 11选5开奖结果走势图
如何破解快三买下期 青海快三历史记录 六合公式规律网 重庆快乐十分开奖号码 重庆时时彩开奖直播
nba比分直播网 云南十一选五走势图表 收贵州快三 118吉利心水论坛 安徽快3开奖记录