15

载入前截图

载入后截图,黄色部分为下一页的文章

主要功能:

1.当滚动到当前页面的底部时,自动载入下一页的文章,并无缝插入到本页适当位置。

2.新载入的文章内会以黄色标记,然后渐变为白色。

2.因利用ajax技术,所以完全无需刷新页面。

个人说明:

《精通JavaScript》里面有一节讲到的“永不终止的blog”,感觉很有趣,就像google阅读器那种无需翻页自动加载更多文章的效果。所以写了这个脚本,利用ajax在blogbus实现了这种效果。

区别主要有三点

1.用于blogbus

2.没有利用jquery库。

3.请求的不是RSS的xml文件。

此脚本是向服务器请求下一页的html,然后利用正则表达式对返回的responseText进行处理,如果利用原书中RSS格式的XML文件就更简单些,毕竟DOM遍历来得容易,但因暂时还没弄清楚如何向服务器请求含有更多的文章的XML,所以也只有用正则表达式这种死办法来完成了。

版权说明:

/**
* @fileoverview 此脚本用于博客大巴(blogbus),主要功能为利用AJAX技术实现无需翻页自动加载更多文章
* JavaScript.
*
* @author Will,Blog:http://lds2008.blogbus.com
* @version 1.0
*
*/
适用范围:
/**
* 主要说明:
* 本脚本基本适用于blogbus的大部分官方模板,以及在官方模板基础上修改而成的自定义模板。
* 判断是否适用的标准是:
* 查看模板代码,其中的主体日志结构(index部分)大致为:

*┌─ ul id="posts"
*│
*├─ li
*│   │  ┌ div class="postHeader"
*│   └─┤ div class="postBody"
*│       └ div class="postFooter"
*├─ li
*│   │  ┌ div class="postHeader"
*│   └─┤ div class="postBody"
*│       └ div class="postFooter"
*├─ li
*│   │  ┌ div class="postHeader"
*│   └─┤ div class="postBody"
*│       └ div class="postFooter"
*└─ /ul
*┌div class="pageNavi"
*└....

*/

其中概括起来就是有三个必要条件:

1.日志主体必须在<ul id=”posts”>里

2.</ul>后面必须有<div class=”pageNavi”>

3.每篇文章的<li>里面必须包含<div class=”postHeader”>

就这三个因素制约了这个脚本的适用范围和灵活性,如果今后找到好的办法,可能会改进这几点。

使用方法:

在自定义head里面加入以下代码:




相关文章

7 Responses to “永不终止的blog”

  1. washood Says:

    博主确实强大!以前的屏风代码帮我解决了不小的困扰。
    这个js很有创意,看过万恶的blog只是提过一下,没想到真能实现。
    不过试用了一下,暂时还有一点小小的问题,按文章分类进行浏览的时候会出现一些不是本类的文章出现,是不是我的模板html结构有问题?
    博主 对 washood 的回复: 2009-05-29 13:58:13
    这确实是个BUG,当时只考虑了index页和log页,文章分类是会出现问题的。按存档,按TAG分类应该都会有同样的问题,主要脚本把他们都当成主页了。

  2. 杰森 Says:

    太好了!我弄好了,费了好大功夫,这个功能太实用了,谢谢!
    博主 对 杰森 的回复: 2009-05-23 23:43:23
    嗯,去看了看,不错,帮我测试了旧模板系统也可以适用。

    其实我本来是准备把这个脚本重写一下让更多人可以直接使用的,但有个因素一直制约着:就是新请求的文章要想无缝的加到模板中去,就必须考量这个模板的HTML结构。

    但现在blogbus的模板实在太多,而且大家做模板时都不太考虑标准化的问题,只有官方模板是做到了标准化的。

  3. 杰森 Says:

    只是我试了一下。每次显示的都是null。
    可不可以修改一下代码使它的使用范围更广?谢谢了!感激不尽

  4. 杰森 Says:

    请问如果修改了旧模板系统中的代码,使其符合上面的要求,可不可以实现这个功能呢?
    博主 对 杰森 的回复: 2009-05-23 21:44:04
    只要完全符合上面的要求,应该可以。

  5. fiammanda Says:

    是不是说它对旧模板系统不适用?
    博主 对 fiammanda 的回复: 2009-05-15 23:26:24

  6. 逼兔 Says:

    你好,请问http://skin-preview.355387.blogbus.com/这个模板的代码可以给我吗?
    如有打扰,请原谅!
    谢谢!
    博主 对 逼兔 的回复: 2009-02-17 13:04:34
    http://lds2008.blogbus.com/files/12318301990.tgz

  7. 别了,大巴 | 西花厅 Says:

    [...] 使用方法:详见 [...]

Leave a Reply