sed /sshd/p -n /var/log/auth.log > /log/sshd.log » 21 days ago
忽然发现code.google.com里有google官方开放的相当多API,documents也相当齐全,像Gears, Maps API, Gadgets API, AJAX Search API, AJAX APIs, AJAX Feed API等等,看着相当诱人,也实用.那么就一个个来试试看吧.
经过一番筛选,觉得最容易也挺实用的就是AJAX Feed API下的AJAX Dynamic Feed Control分支.能实现一个相当令我愉快的功能:无须服务端跨域调用各API的xml数据,并动态显示.
之所以这么让我愉快是因为前面写过一段用wordpress内置功能来读取饭否API显示到blog上的PHP小代码,但最近工作一直都在写javascript,用的框架是jQuery,看到jQuery里有个函数$.getJSON()可以跨域调用json,本想用这个来再试着写个更简单些的调用饭否API的小代码,但怎奈何不知是服务端的问题还是我写的不对,莫名其妙地就是读不出来.而读Flickr的json API就可以,相当令我郁闷.这时翻到了google的这个AJAX Feed API,怎能不令我兴奋.呵呵.
OK,闲话完毕,先出demo: http://ihao.net/ilab/google/gsblogbar.htm
效果比原先我用php写的静态输出内容的确实好很多.能提供的内容展示也更多(比如我可以前饭否的最新十条消息,blog最新的十篇文章标题都放在里面做轮循).不过这种用ajax输出的内容能否被搜索引擎抓到还是相当不乐观的,因此再结合自己在blog里不输出任何图片及javascript的原则,目前还没有应用上的打算.存下这个demo以后有机会再用.
做到demo所示的那样实在没啥好说的,一切都是按照google给出的Dynamic Feed Control Programming Guide做就成了.唯一做了些修改的就是在css上,隐藏了默认输出的google logo.对显示样式也改了下.无他.对了,还要申请个Google AJAX Feed API key.因为引用的js包需要附上这个key,不过好像测试时不加上key对这个应该还是没关系的.
几个参数作下翻译吧
linkTarget : google.feeds.LINK_TARGET_BLANK (在新窗口打开链接)
pauseOnHover : true / false (鼠标悬停时是否停止滚动)
title : (默认分类标题,当然也可不指定,定义到feed的参数项里)
stacked : true / false (大载入多条feed源时控制顶上动态的显示的显示范围)
horizontal : true / false (水平模式)
numResults : 10 (抓取feed内容的结果数)
displayTime : […]
看到有朋友提出这个源码用不了,于是乎作了些修改并测试了新版WP下的效果,都可以正常运行。
本来这几句代码是用在自己的blog上,没想到会有这些许朋友用到它。文件里关于使用方法及修改说明也写得乱七八糟的,今天重新作了修改,附上详细说明:
解包及配置:
下载文件包:fanfou_ing_plugin_for_wordpress.zip (google code host不给我传文件faint~~暂时先用svn co吧,或者邮件送出)
如果你也用svn的话那么请从这儿checkout:
http://ihao.googlecode.com/svn/trunk/plugin/wordpress/fanfou
解压后得到俩个文件:
ing.php (输出最新的单条饭否消息)
ings.php (输出20饭否存档信息的page模板)
将这俩个文件放到当前模板目录下面。
修改俩个文件中的四个配置变量分别是:
$ingid:你的饭否id(登录饭否时用的id,英文)
$ingname:饭否用户名(饭否消息中显示的用户名)
$noname:是否在显示饭否消息时去掉用户名(支持去掉中文名)(在输内容里去掉每条消息前的用户名 true/false)
$ingnum:消息的输出条数(1-20条)
修改ings.php文件中的html结构使之适合你当前的模板结构。
使用方法:
显示单条新消息:
在模板中想要显示饭否最新一条信息的地方引用ing.php这个文件。
<?php include (TEMPLATEPATH . '/ing.php'); ?>
显示消息存档页面:
新建一个page,在page template里选择”Ings”,填完标题后内容留空发表就OK了。
其他说明:
文件利用wp自带的MagpieRSS:/wp-includes/rss.php来读取并解析饭否API输出的用户xml文件并输出到页面,没有引入其他的代码,没有做成插件,尽量简单高效地实现消息输出。
wordpress默认的rss.php缓存更新时间为一个小时,如果心急测试,可以在rss.php的582行缓存设置做修改,如设置为10分钟(60*10)。
chinese继承自person,并新建了个方法:saylove.在onload中测试new一个chinese.并直接调用person中定义的say和from方法.最后调用chinese增加的saylove方法.返回ok.那么这应该就算继承了吧.
js:
$(function(){ //this code need jquery support $(”a.say”).click(function(){ var name = $(this).attr(”name”); var sex = $(this).attr(”sex”); var area = $(this).attr(”area”); ihao = new chinese(name,sex,area); ihao.say(); ihao.from(); ihao.saylove(); return false; });});function chinese(name,sex,area){ person.call(this,name,sex); this.area=area; this.say=function(){ alert(”chinese > my name is:”+this.name+” and sex:”+this.sex); }}chinese.prototype=new person();chinese.prototype.from=function(){ alert(”and from:”+this.area);}function person(name,sex){ this.name=name; this.sex=sex; this.say=function(){ alert(”my name is:”+this.name+” and sex:”+this.sex); }}person.prototype.saylove=function(){ alert(”love”+this.name);}
html:
<a […]
万恶的IE今天让我领教了它的BT,因为一个js类需要实现在html的一个area中写入一个onmouseover和onmouseout事件,但当我用js实现时用setattribute(”onmouseover”,”dosomething();”)写入,执行后在firefox下可以看到已经生成相应的html,但是当打开ie测试时却晕了,这么简单的一个属性设置语句居然在ie下不执行.
好吧,可能我确实哪儿没写对,或者area的z-index属性没设对,重新对页面中的几个area的z-index重新查了一遍,没有问题,还是从onmouseover这个事件本身开始查问题,把事件写入html不用js来生成,IE和FF下都可执行,说明onmouseover事件本身没有问题,再用js生成相应html,对比手写与js生成的代码一模一样,可问题就是js生成的事件不执行,而手写的却没有这样的问题.抓狂~~~~
在FF下js代码执行过程firebug没有报任何错误,setattribute本身也是正确的.于是钻入这个圈子反反复复抓狂了N遍.
崩溃的边缘,将代码丢给甜甜同学,让丫查查看,出去抽了根烟回来一看,丫的居然用.onmouseover=function(){dosomething();}给实现了.faint~~~对于setAttribute我有五千万个干~~~
加班完回家还不甘心,上网一查,居然还真有人遇到过有关setattribute的问题:
setAttribute does not work when used with the style attribute(2005年就报出来的bug,setattribute不干活)
伟大的IE又一个令人发指的bug(ie用setattribute写mailto时会自作聪明地重写地址)
好吧,无语了,睡觉…
Fresh Articles List
Popular Articles List
Most commented user
Oldies, but Goodies!
Popular Tags
Monthly Archives
iHao Friends
Site Meta