2007/05/20

超强的ajax标签.from GGpi

前几天一直在想 ajax是什么东西……?

后来查了一下 发现是个超强的功能 看到有那么多人推荐 自己也试了一下

真的是超强~!节省了很多不必要的麻烦 看着也非常舒服

内容转自GG派

第一步:首先把下面的代码加入你的xml模板里的上边,]]<>/b:skin>下边:
<style type='text/css'>
#indicator {position:fixed;z-index:1000;padding:15px 0;top:40%;background-color:#FFFFFF;border:1px solid #AAAAAA;width:176px;left:50%;margin-left:-88px;text-align:center;}
#search-result {border:1px solid #AAAAAA;padding:10px;padding-bottom:30px;font-size:85%;}
.search-result-meta {background:#EFEFEF;padding:2px;}
.search-result-meta img {border-width:0;vertical-align:text-bottom;}
.search-title {font-size:1em;padding-bottom:3px;font-weight:bold;text-align:left;text-decoration:underline;}
.search-cat {display:block;padding:3px;font-size:1em;margin-top:5px;margin-bottom:5px;border-bottom:1px solid #C0C0C0;font-weight:bold;}
.search-close {color:silver;float:right;border:1px solid #F5F5F5;margin-top:10px;cursor:pointer;}
.search-result-nav {font-size:1.4em;font-weight:bold;padding:5px 0pt;text-align:center;}
</style>
<script type='text/javascript' src='http://ggpi.googlecode.com/files/prototype.js' />
<script type='text/javascript'>
//<![CDATA[
// User customisable parameters
// ----------------------------
//maxresults - 设置一页标签做多显示的文章数
// navFlag - 是否打开标签翻页功能.
// feedLabel - 描述你的标签RSS的文字.
// catLabel - 描述你的标签的文字.
// closeLabel - 描述关闭按钮的文字.
var maxresults = 5;
var navFlag = 1; //ON by default
var feedLabel = "Subscribe to";
var catLabel = "Sorted into:";
var closeLabel = "Click to close";
//]]>
</script>
<script type='text/javascript' src='http://ggpi.googlecode.com/files/ajaxlabels.js' />

注意如果你已经使用了prototype.js的话,那么无需再安装上面代码的prototype.js脚本了。很大63k阿。。。

文章翻页功能是根据你设置的标签最大文章数来的,你标签下有19篇文章,你设置一页最多显示5篇,则你的翻页数为4页“1 2 3 4”,以此类推。

第二步:找到下面的代码,
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a>

替换成:
<b:loop values='data:post.labels' var='label'>
<a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' rel='tag'><data:label.name/></a>

如果你希望每次点击文章下的标签能自动跳转到页首,要把脚本改换成:
<b:loop values='data:post.labels' var='label'>
<a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null),scroll(0,0)"' rel='tag'><data:label.name/></a>

如果你增加了标签页面元素,那么你还可以找到标签页面元素的类似下面的代码:
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a href='data:label.url'><data:label.name/></a>
</b:if>

替换成:
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a href='#sres' expr:onclick='"javascript:getCat(\"" + data:label.name + "\",null)"' ><data:label.name/></a>
</b:if>

第三步,给你的博客增加一个新的页面元素用来显示使用本hack以后会瞬间出现的标签内容。这个页面元素一般情况下是没有任何显示的,只有当你点击标签以后才会出现。强烈建议放在你的博客正文项目上方。
页面元素内部添加代码如下:</code><div id="indicator" style="display: none;"><img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif" /> Loading...</div><div id="search-result" style="display: none;"><a name="sres"></a><div class="search-close" onclick="javascript:Element.hide('search-result')"><script type="text/javascript">document.write(closeLabel);</script></div><div id="show-result"></div><div class="search-close" onclick="javascript:Element.hide('search-result')"><script type="text/javascript">document.write(closeLabel);</script></div></div>
然后就完工了:)

下面说如果你要想标签内容出现的同时隐藏正文如何修改代码:
首先把第三步的页面元素代码替换为如下代码:
<div id="indicator" style="display:none"><img alt="Indicator" src="http://bloggerhacked.googlepages.com/indicator.gif"/> Loading...</div><div id="search-result" style="display:none"><a name="sres"></a><div class="search-close" onclick="javascript:Element.hide('search-result');Element.show('Blog1');"><script type="text/javascript">document.write(closeLabel);</script></div><div id="show-result"></div><div class="search-close" onclick="javascript:Element.hide('search-result');Element.show('Blog1');"><script type="text/javascript">document.write(closeLabel);</script></div></div>
然后把第一步的最后一个脚本
http://ggpi.googlecode.com/files/ajaxlabels.js
替换为:
http://gggpie.googlepages.com/ajaxla.js
即可


PS:写此文不只是为了研究ajax 因为也知道自己贴上来没什么用
就是为了练习贴代码 和打字速度~