利用XMLHTTP技术为Donews Blog添加最新文章列表

xml

    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/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中则是隐藏溢出的文字。

时间: 2024-10-21 22:29:16

利用XMLHTTP技术为Donews Blog添加最新文章列表的相关文章

用AJAX技术实现在自己Blog上聚合并显示朋友Blog的最新文章

有时候,你的Blog可能需要这样的功能: 在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blog和文章. 这个功能你可以叫它"Blog聚合"或者"Blog联播",目前,实现这样功能的软件或服务都有限制:比如,Terac Sinfonia.Lilina.MXNA虽然功能都很强大,但是需要安装,不能自由定制,不能嵌入到Blog侧边栏.另一方面,目前提供这样服务的BSP只能聚合本系统内的用户,限制

如何利用长尾技术写出高质量原创文章

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 高质量原创内容相信是所有梦寐以求的吧.但是由于行业竞争和内容爆炸性的增长速度,导致许多站长对于如何写出高质量原创文章是一筹莫展了!下面小李子就根据自己几年来的工作经验来教站长们如何利用长尾技术写出高质量原创文章! 关键词的长尾理论相信大家并不陌生吧!大家在做站时都知道是金字塔的形式布局网站关键词.主词+长尾词的形式优化关键词已经成了所有站长通

利用XMLHTTP 从其他页面获取数据

xml|数据|页面 我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了.xmlhttp是xmldom技术的一部分. 下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.codetoad.com/站点首页的代码以xml的形式完全获取,并且在页面中输出. <%  Dim objXMLHTTP, xml  Set xml = Server.CreateObject

利用XMLHTTP从其他页面获取网页数据

xml|数据|网页|页面      我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了.xmlhttp是xmldom技术的一部分.       下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.codetoad.com/站点首页的代码以xml的形式完全获取,并且在页面中输出. <%   Dim objXMLHTTP, xml   Set xml = Ser

asp下利用XMLHTTP 从其他页面获取数据的代码_小偷/采集

利用XMLHTTP 从其他页面获取数据 我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了.xmlhttp是xmldom技术的一部分. 下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.xxxx.com/站点首页的代码以xml的形式完全获取,并且在页面中输出. <% Dim objXMLHTTP, xml Set xml = Server.CreateOb

asp下利用XMLHTTP 从其他页面获取数据的代码

利用XMLHTTP 从其他页面获取数据 我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了.xmlhttp是xmldom技术的一部分. 下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.xxxx.com/站点首页的代码以xml的形式完全获取,并且在页面中输出. <% Dim objXMLHTTP, xml Set xml = Server.CreateOb

wordpress显示同分类的最新文章实现方法

今天在折腾主题的时候,想给当前分类下显示最新文章列表.就是显示与文章分类相同的最新文章.看到了prower的新主题prowerv4里面有这个功能.当在文章页面时,显示统一分类文章.代码如下:  代码如下 复制代码 <div id="related_post"> <h3><?php $category = get_the_category(); echo $category[0]->cat_name; ?> 下的最新文章</h3> &

wordpress调用最新文章一些方法总结

第一种方法 WordPress最新文章的调用可以使用一行很简单的模板标签wp_get_archvies来实现. 代码如下:  代码如下 复制代码 <?php get_archives('postbypost', 10); ?> (显示10篇最新更新文章) 或 <?php wp_get_archives('type=postbypost&limit=20&format=custom'); ?> 后面这个代码显示你博客中最新的20篇文章,其中format=custom这

利用xmlhttp和adodb.stream加缓存技术下载远程Web文件

ado|stream|web|xml|缓存|下载 研究了几天Adodb.stream和XMLHTTP的应用,找了不少很有趣的教程,下面的代码是将一个远程的页面,图片地址保存到本地的实例.将代码保存为一个.ASP的文件,将它放到IIS的一个目录下,在它的上级见一个cache目录,下载后的文件将保存到cache目录下 fso.Asp?path=logo.gif你就可以将logo.gif文件保存下来.学小偷的朋友也可以看看.. <%'----------远程获取内容,并将内容存在本地电脑上,包括任何文