-
2008-06-19 - [助人为乐]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://estyle.blogbus.com/logs/23216790.html
应亲爱的cosmoslee的要求,要在博客大巴上实现随机友情链接,我彻夜钻研,总算找到方法,如下:
请cosmoslee在博客大巴的后台,“BLOG设置”下方的“自定义HEADER”中,插入以下代码后点确定按钮:
<script language="javascript">
<!--
// 由Estyle(www.estyle.com.cn)持续修改中,麻烦得要死……
window.onload=function(){
renderRandomLinks("cosmoslee的邻居们",10);//将“10”修改为你要显示的链接的数量
}
function renderRandomLinks(linkText, linkNum){
var oH2s=document.getElementsByTagName("H2");
var oLIs;
for(i=0;i<oH2s.length;i++){
if(oH2s[i].innerHTML==linkText||oH2s[i].innerHTML.indexOf(">"+linkText+"<")>=0){
oLIs=oH2s[i].parentNode.getElementsByTagName("DIV")[1].getElementsByTagName("UL")[0].childNodes[0].childNodes;
break;
}
}
var aLIs=getRandomList(oLIs.length-linkNum, oLIs.length);
for(m=0;m<aLIs.length;m++){
oLIs[aLIs[m]].style.display="none";
}
}
function getRandomList(num, total){
var oArr=new Array();
var nArr=new Array();
for(i=0;i<total;i++){
oArr[i]=i;
}
if((num>0&&num<total)){
for(j=0;j<num;j++){
var tRand=1;
while(tRand==1){
tRand=Math.random();
}
nArr[j]=oArr[Math.floor(tRand*(total-j))];
oArr[Math.floor(tRand*(total-j))]="X";
oArr.sort();
}
}
return nArr;
}
-->
</script>需要说明的是:
- 除cosmoslee以外的博客大巴的朋友,若想实现随机友情链接,很可能需要再行微调代码——代码挑模板,没办法;
- 若搞不定微调代码,俺可以帮忙,基本上不难;
- 我在IE7和FF2下测试通过了,虽然代码看起来有点脑残,但是你发现了没,没有if MSIE else...之类更脑残代码,所以我很满意;
- 这段代码的原理是“事后随机隐藏链接”,载入初会有“残影”,页面完全载入后残影才会消失,若对此不满,我也无能为力;
- 对搜索引擎的影响,有待考证;
- 若你写了更短更好的代码,期待你能分享给我们;
- 这是“我能为您做点什么吗?”系列活动之一,如果你也需要帮助,不妨让俺试试?
随机文章:
请各位为我推荐一款国外的虚拟主机吧,要求内详 2008-08-03分享:主流搜索引擎对用户点选命中的处理 2008-07-31Live Search技巧之查询IP邻居 2008-07-07我能为您做点什么吗? 2008-06-17如何修改“评论榜” 2008-05-07
收藏到:Del.icio.us






评论
周庄有啥著名的吃的不?
最近没在学校,跑到周庄玩了两天,现在在搞照片,争取找几张说的过去的给大家欣赏欣赏
老E,我觉得我自己找到了一个很好的老师,这让我觉得我变的无比强大了,哈哈
开始请教了,哈哈:)
我想做一个在线的数据库(学校课程设计之用),大概有十天左右的时间完成。
要完成的效果是建立一个在线订餐的数据库,会员可以订给定的几种菜之一,系统还可以记录会员之前的一到两次的点餐记录。
我刚查了一下,貌似mysql比较适合我,你觉得呢?
补充下,我能看懂基础的c语言程序,编程基础仅此而已~~~
你的问题不够明确,我不知道该从何说起,技术交流方面你还需要再加强一点,呵呵。要不你再来补充一下?
PS:虽然看起来功能很简单,但如果你对关系型数据和Web应用程序编码的掌握不够,会够你头疼的,更何况只有十来天。建议你先花至少一半的时间在某个Web应用程序开发技术上,比如PHP(如果你选MYSQL)或者ASP(如果你选Acess),有针对性的学习和尝试(主要是和数据库交互的那一块)。剩下的时间,用来写数据库,写代码和调试。前一步的收获越大,掌握得越牢固,后一步所用的时间越短(虽然看起来后者才是在“做实事”)。另外,数据库设计的重要性丝毫不亚于写程序,把想法变成数据库很容易,而把想法变成可以运行的程序却很难,所以将时间花在程序上的同时,把小的空闲(比如上厕所的时候)用在对数据库的思考上,是最好不过的。供你参考。
数据库也可以交流的,随时欢迎。 :_)
希望你能给我再牛一次的机会,哈哈哈。
PS:其实在我心目中,牛人写代码应该像你写英文一样,能行云流水一气呵成(我猜你能),而我做不到,必须不断调试,不断修改,而且总是不能满意,烦。所以,我离牛人还差得远,可能我唯一牛的地方就是“意识”,这一点,我很自豪,哈哈哈。
也许是因为我在学校网速太慢的缘故吧。总之很感谢。
觉得你很牛啊,好像技术你都懂。
数据库这一块你熟不?马上可能要钻研钻研,到时候还要向你请教哈~~~
我刚才去看了你的博客,代码已经生效了,没有问题。
如果你在机器上看起来仍有问题,比如链接还是和以前一样,那么最可能的原因是:因为我的代码是在要页面完全载入以后才生效的,所以你观察的时间点在页面完全载入以前,也就是所谓的“残影”(见第四条说明),我也没办法。你忍一忍吧?呵呵。
另外,问下这一段是什么语言?php?
另外,博客大巴的客服回应速度很快,赞一个!
没的事~~
修改了getRandomList的定义,删掉了num=total-num这一行脑残的代码。
为什么我不喜欢写代码?因为代码总也写不好,郁闷。
别往心里去,俺是开门见山有啥说啥的,事情解决了就好,你不是很快帮我改回来了吗?
如果你不帮我改回来,反而咬我一口不识好歹,那你真的就需要向我郑重道歉了。但你不会这样滴,俺很清楚——所以才能有话直说嘛,看开点,看开点,没事儿!别像小女人一样娇滴滴地多愁善感。
昨天的事情不好意思!其实我的帮忙一点技术含量都没有,就像你说的啥子全局样式其实偶也不知道。。。偶就是一篇热心想找到某些地方和原模板不一样的地方,然后该回去,可以评论就OK了。。不是我不想用点技术,我是完完全全的不知道,额。。。。。
OVER~~走人。。
又修改了一个脑残的地方,代码又短了几个字节,哈哈。
1、判断是否为链接的H2的逻辑,降低了链接文字很简短造成的误判;
2、获取LI的代码,简化了一下,反正能用就行。
PS:什么时候改的全局设置?我也不知道,郁闷。