w.blogger 测w.blogger 测w.blogger 测w.blogger
May 21, 2010
May 20, 2010
September 26, 2009
强制IE使用Google Chrome Frame插件
近日 Google 推出了一款 IE 浏览器插件 Google Chrome Frame ,可以让你的 Internet Explorer 获得与 Google Chrome 浏览器一样的浏览速度,并且支持最新的 HTML5 等 web 技术。
但是比较麻烦的是在 IE 浏览器中必须手动添加网址前缀“cf:”才可以正常使用此插件,好在今天labnol.org 给出了一个方法可以强制 IE 浏览器始终使用 Google Chrome Frame,方法如下:
首先给 IE 浏览器下载安装 Google Chrome Frame 插件,然后下载并双击运行此文件 chrome-frame.reg 即可。
如需卸载此文件请运行 windows 注册表编辑器(开始-运行-regedit),找到如下项
HKEY_CURRENT_USER\Software\Google\ChromeFrame\OptInUrls
删除位于右侧栏的字符串值“*”即可。
August 24, 2009
July 17, 2009
jQuery选择器
$的选择器部分:
凡是运用$,其返回值是一个object
$选择器主要用于选择标签.基本用法是同css的选择器.但是,很让人兴奋的是,他支持常见的浏览器,而css中很多选择器是IE6所不支持的.
1.基本选择器(3种):
$(”标签名”),如$(”p”)是选取了所有的p标签节点
$(”#id名”),如$(”#test”)是选取了id为test的标签节点
$(”.class名”),如$(”.test”)是选取了所有class为test的标签节点
上面的$(”标签名”)和$(”.class名”)返回的都是所有满足的节点,至于进一步筛选可以添加一些函数,如eq,gt,lt等等.
2.组选择器:
下面还是现做一个约定:把”标签名或#id名或.class名”记作mix,则mix表示一个标签名,或一个#id或一个.class.
$(”mix,mix,mix,…”),如:$(”div,#test1,p,.test2,#test3″)
3.后代选择器:
$(”mix mix”),当然可以是多个嵌套,但后代选择器可以是深层子代,所以$(”mix mix mix …”)这种写法作用不大.例子:$(”div .test”):在div标签内的所有具有test的class的后代元素(就是被div嵌套的class属性为test的标签)
可以见DEMO。
4.子选择器:
$(”mix>mix”),这个放在后代选择器后面是为了和它做对比.子选择器只能选择第一代子代.不处理深层嵌套.例子:
$(”div>.test”)
<div><p class=”test”></p></div>对这里的p段落标签有效.但对
<div><p><p class=”test”></p></p></div>对这里的p段落标签无效,这里要用
$(”div .test)
5.临近选择器:
$(”mix+mix”),选取下一个兄弟节点.如:$(”div +#test”),id为test的的节点必须是div的下一个兄弟节点.
<div></div><p id=”test”></p>在$(”div + #test”)中能取到p段落节点
<div></div><p></p><p id=”test”></p>则不能取到
6.属性选择器:
把属性选择器不放在css选择器里面是因为jQuery中写法是不一样的.至于css中写法可以参考我之前写的一篇css的选择器一文.jQuery中是和xPath类似的写法:
$(”mix[@attr]“):选取所有该mix且具有attr属性的节点
$(”mix[@attr=a_value"]):选取所有该mix且具有attr属性并满足属性值为a_value的节点
$(”mix[@attr^=a_value_head"]):attr属性的属性值是以a_value_head开头的
$(”mix[@attr$=a_value_end"]):attr属性的属性值是以a_value_end结尾的
$(”mix[@attr*=a_value"]):attr属性的属性值中包含a_value
7.进一步选择器:
这个名称是我自己起的,其实选择器组合都有进一步的意思,你明白后面所介绍的知识即可.
具有限定子节点选择器:$(”mix1[mix2]“):返回包含mix2的mix1节点.如:$(”div[a]“):包含a标签的div.
这个和$(”div a”)不相同.后者表示div中的a标签,返回的是a标签对象,前者返回的是div标签对象
冒号限定结点选择器:$(”mix:condition”):mix标签,并且满足限定条件.
E:root:类型为E,并且是文档的根元素
E:nth-child(n):是其父元素的第n个类型为E的子元素 ,基数从1开始
E:first-child:是其父元素的第1个类型为E的子元素
E:last-child:是其父元素的最后一个类型为E的子元素
E:only-child:且是其父元素的唯一一个类型为E的子元素
E:empty:没有子元素(包括text节点)的类型为E的元素
E:enabled
E:disabled:类型为E,允许或被禁止的用户界面元素
E:checked:类型为E,处于选中状态的用户界面元素(例如单选按钮或复选框)
E:visible:选择所有可见元素(display值为block或visible,visibility值为visible元素,不包括hide域)
E:hidden:选择所有隐藏元素(非Hide域,且display值为block或visible,visibility值为visible的元素)
E:not(s):类型为E,不匹配选择器s
E:eq(n),E:gt(n),E:lt(n):元素限定
E:first:相当于E:eq(0)
E:last:最后一个匹配的元素
E:even:从匹配的元素集中取序数为偶数的元素
E:odd:从匹配的元素集中取序数为奇数的元素
E:parent:选择包含子元素(包含text节点)的所有元素
E:contains(’test’):选择所有含有指定文本的元素
表单选择器:
E:input:选择表单元素(input,select,textarea,button)
E:text:选择所有文本域(type=”text”)
E:password:选择所有密码域(type=”password”)
E:radio:选择所有单选按钮(type=”radio”)
E:checkbox:选择所有复选框(type=”checkbox”)
E:submit:选择所有提交按钮(type=”submit”)
E:image:选择所有图像域 (type=”image”)
E:reset:选择所有清除域(type=”reset”)
E:button:选择所有按钮(type=”button”)
当然包括E:hidden
July 4, 2009
服务器apache转lighttpd
本来只是想简单的给apache2加上压缩模块,结果,编译后的模块似乎无法工作,折腾n久未果,干脆直接换掉apache,装上lighttpd,lighttpd确实很轻,看配置文件行数就知道了,php fastcgi弄了好久,重新把之前编译过的php5的整个目录删掉,再解压编译才正常,rewrite和apache下语法一样,直接拿过来用就ok了。
不过编译出的php-cgi大概10m,所以执行php程序好像还是比较消耗内存,可能我还对fastcgi不理解吧。
May 22, 2009
April 22, 2009
Google Adwords Keywords Watch
花了两天时间做的一个小应用,http://adwords.ykjsw.com/
可以通过设定关键字来监视每天google search adwords的变化,积累下来,可以看到哪些关键字容易赚钱。基本功能实现了,如果以后有需要,继续完善。
April 17, 2009
[转]Linux系统vsftpd下建立虚拟用户的脚本实现
这样用一条一条命令实现,很费力气,不如使用脚本来得更快一点。
下面这些是我做的一个建立feixiang这个虚拟帐户的简单脚本。为了让更多人看得懂,我写的很简单,
当然技术也是有限的。你只有把下面的文本保存好,使用chmod u+x filename,然后运行,就OK了。
#!/bin/sh
#添加虚拟的用户帐户!
touch /tmp/ftpuser_list
echo “feixiang
1985731
” >/tmp/ftpuser_list
rm -rf /etc/vsftpd_login.db
db_load -T -t hash -f /tmp/ftpuser_list /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
touch /etc/pam.d/ftp.vu
echo “auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login” >/etc/pam.d/ftp.vu
#添加本地计算机用户名和密码;
useradd -d /ftp -s /sbin/nologin vsftp
chown -R vsftp.vsftp /ftp
touch /tmp/new_ftppwd
echo “vsftp:1985731″ >/tmp/new_ftppwd
chpasswd < /tmp/new_ftppwd
#配置vsftpd.conf全局设置:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak.00
echo “anonymous_enable=NO
anonymous_enable=NO
#本地帐户配置!
local_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
#启用来宾帐号,也就是虚拟用户使用的帐号的权限用户。
guest_enable=YES
guest_username=vsftp
user_config_dir=/etc/vsftpd/user_config_dir
local_root=/www
write_enable=YES
pam_service_name=ftp.vu
userlist_enable=YES
listen=YES
chroot_local_user=YES
tcp_wrappers=YES
#ftp用户日志配置!(双日志方案!)
xferlog_enable=YES
xferlog_std_format=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log” >/etc/vsftpd/vsftpd.conf
mkdir -p /etc/vsftpd/user_config_dir
mkdir -p /www/feixiang
chmod -R 777 /www/feixiang
touch /etc/vsftpd/user_config_dir/feixiang
echo “anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/www/feixiang
anon_mkdir_write_enable=YES” >/etc/vsftpd/user_config_dir/feixiang
#重启vsftpd服务器,就OK了。
service vsftpd restart
#feixiang 这个帐户,就弄好了。
如果你要添加新的虚拟用户,可以在这个文件里面加入新的用户:
/tmp/ftpuser_list然后保存。(注意ftpuser_list的格式。)
feixiang #用户名
1985731 #密码
username #用户名
passwd #密码
记住中间没有空行和空格。
再使用:
rm -rf /etc/vsftpd_login.db
db_load -T -t hash -f /tmp/ftpuser_list /etc/vsftpd_login.db
就可以添加新的用户了。添加新用户后:不用重启服务,就可以生效了。
本文出自 “feixiang” 博客,请务必保留此出处http://feixiang123.blog.51cto.com/285543/75839
April 16, 2009
Twitter bots
在twitter上每次发条内容,如果你发部的内容有url,都会有两只机器人去爬一下那个url ,而且是即时,USER-AGENT如下:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 TweetmemeBot
Chat Catcher - (http://chatcatcher.com/bot.htm)
暂时不知道他们是干什么的:(