06月 16th, 2009
ie下如果您在text输入框按回车就会默认将表单提交,可是俺万万没有想到,竟然强大到连submit的onclick事件都能触发了…
示例1:input外面有form标签,输入框按回车会提交表单
<html>
<body>
<form action="http://g.cn">
<input type="submit" value="haha" onclick="alert(1);" />
<input type="text" />
</form>
</body>
</html> Copy Code |
Run Code
示例2:input外面没有form标签,输入框按回车会触发submit的onclick事件
<html>
<body>
<input type="submit" value="haha" onclick="alert(1);" />
<input type="text" />
</body>
</html>
Copy Code |
Run Code
ajax提交流行的今天,form标签往往直接被省略,所以这个特性很可能造成用户在某个输入框按了回车,然后某处一个不相关的button被ie点了一下….
Filed in web dev
- Tags: bug, ie, javascript
-
2 Comments
06月 2nd, 2009
个人比较习惯用email更新博客,写日记用的blogger一直是手机写邮件更新,于是打算这个工作blog也要这么搞
wordpress自身有个通过邮件更新的功能,但是很弱,不支持附件.所以俺再次拿python做练习
实现方式:
发布blog时只要写信给somebody+xxoo@gmail.com
脚本会定时检查somebody@gmail邮箱,
实现特性:
- 可以通过添加"[[tag:t1,t2,t3]]"设定文章的标签
- 可以通过添加"[[cat:c1,c2]]"设定文章分类
- 可以添加"[[end]]"标记文章结尾,标记后面的字符将被忽略
- 可以添加[[html]][[/html]]块发布纯html代码块
- 可以将邮件中的图片提取,并上传到picasa或者wp
(备注:"[["实际使用用时要用三个,即"[[[xxxx]]]"这里用两个是因为本文也是通过这个脚本发布的)
运行环境:
python2.6(ubuntu)(其他版本未测),gdata库
部分代码:
def after_publish( self, mid ):
self.mail.read( mid )
#实例化一个Gmail2Blog,参数依次为:gmail帐号,gmail密码,wp帐号,wp密码,blog的xmlrpc地址
myG2B = Gmail2Blog( 'somebody@gmail.com', 'xxxx', 'admin', 'xxxx', 'http://xxoo.com/xmlrpc.php' )
#将处理完的邮件标记为已读
myG2B.publish_callback = after_publish
#设置图片的上传方式,'picasa':上传到账户的picasa相册,'wp':上传到blog
myG2B.upload2 = 'picasa'
while True:
#将收件箱中发送给'somebody+blog@gmail.com'的未读邮件发送到blog
myG2B.publish_mail( 'INBOX' , '(UNSEEN) (TO \"somebody+blog@gmail.com\")' )
#每隔十分钟检查一次
time.sleep( 60 * 10 )
Copy Code
源码下载:
非常不靠谱版本(等靠谱了就放到vps上长期运行
)
gmail2blog-sbeta.tar.gz
Gmail撰写截图:

Filed in soft
- Tags: gmail, python, wordpress
-
0 Comments
05月 27th, 2009
网上安装配置文章很多,讲优化的却很少,备个忘
系统环境:centos5,128 RAM
安装的服务:nginx,fast_cgi,php5,mysql,vsftp
1.关闭没用的服务
…关的太多,最后剩下还在运行的服务
anacron atd auditd cpuspeed crond haldaemon iptalbes irqbalance readahead_early sshd syslog vmware-tools nginx vsftpd mysqld
2.关闭selinux
#vi /etc/selinux/config
SELINUX=disabled
Copy Code
3.mysql禁用innodb
#vi /etc/my.cnf
在[mysqld]字段添加
skip-innodb
Copy Code
4.fast_cgi仅开了2个进程(哦,pv是什么我还不知道)
优化结果:
# free -m
total used free shared buffers cached
Mem: 122 119 3 0 11 67
-/+ buffers/cache: 40 82
Swap: 509 0 509
Copy Code
效果还可以
Filed in linux
- Tags: linux, vps
-
0 Comments
05月 21st, 2009
以前人品好,没碰到过…
情况就是当页面里有n(n>0)个flash,而且url里带有锚点时页面的title后面就会跟n个锚点

应该算adobe flash 的bug吧,具体:
http://bugs.adobe.com/jira/browse/FP-240
IE appends anchor name to title bar
adobe的网站上说Flash Player 9 - 9_0_124_0,IE7下才有这个问题,可俺的问题是在flash10,ie6下发现的,不靠谱……
Filed in other, web dev
- Tags: bug, flash, ie
-
0 Comments
05月 17th, 2009
data-URI是一种允许将图片直接嵌入页面或者样式表中的标准,新版本的firefox,safari,chrome,ie8均已支持,所以可以利用data-URI将样式表中的背景图片合并到文件,以减少连接数,加快网页的载入速度.
但是由于低于ie8的ie版本均不支持data-URI,所以要通过mhtml对ie6,7版本特殊照顾(ie中将网页保存为单个.mht文件时使用了该标准)
通过data-URI编码的图片要比原图大1/3,而且如果图片在样式表中反复出现,转换后的体积将比原文件加图片的体积不只大1/3,但是由于传输一般走gzip,客户端也有缓存,所以可以无视吧….
恩,技术就是这么点,本来要用这个搞一下优化,但是老大没有点头,白写了脚本,不过学了会python也没用过,算练练手
下面这个就是通过脚本转换的曾经风靡全球的css garden的页面
http://bluehua.org/demo/data_uri/cssgarden/
页面加载完毕只有两个请求,一个html,一个css
转换文件使用的参数
sudo python /home/hualu/bin/data-uri.py -l /media/we/share/cssgarden/ -r http://bluehua.org/demo/data_uri/cssgarden/ /media/we/share/cssgarden/001
Copy Code
既然用不着,脚本也就一直beta下去了,啊….
python脚本下载
Filed in web dev
- Tags: data-uri, mhtml, python
-
0 Comments
05月 5th, 2009
虽然习惯随机…
mpc play `mpc listall | sed -n '/周杰伦/{=;q}'` Copy Code
Filed in soft
- Tags: linux, mpc, shell
-
0 Comments
05月 4th, 2009
Filed in soft
- Tags: soft, ubuntu, wine
-
1 Comments
04月 27th, 2009
一般来说如果我从http://abc.com/about.html把下面一段带有相对路径的文字粘贴到一个富文本编辑器
应当自动转换为如下形式
xx<a href="http://abc.com/help.html">help</a>
Copy Code
这样里面的相对路径链接才不会失效,但是发现tinyMCE在ie下面却不会自动转换。以为其他网站也会这样,但是试了一下sina博客的编辑器却没有这个问题,看来应该是tinyMCE本身的问题。
查了许久,发现tinyMCE即使不传document_base_url这个参数也会自作聪明的加一个<base />标签,而href的值就是当前路径。从而导致ie不再自动转换粘贴内容里的相对路径,所以只要删除这个元素便可解决问题,hack如下:
(function()
{
tinymce.create('tinymce.plugins.bluePatch', {
init : function( ed, url )
{
ed.onInit.add( function( ed, cm)
{
var b = ed.getDoc().getElementsByTagName( 'base' )[ 0 ];
//发现直接删除会出问题,所以删除href就够了
b.removeAttribute( 'href' );
});
}
});
tinymce.PluginManager.add( 'bluePatch', tinymce.plugins.bluePatch );
})(); Copy Code
Filed in web dev
- Tags: javascript, tinyMCE
-
0 Comments
04月 5th, 2009
第一感觉肯定不会装个泵,g了一下是下面的这个东西
半导体制冷
原来半导体还能一头冷一头热的。。。
Filed in 我火星
-
0 Comments
04月 3rd, 2009
y,自从用了vim,该让机器做的都让机器做了。。
这个东东的原理是这样滴,firefox安装一个插件,起作用的就下面几行
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("/tmp/refresh.firefox");
//浏览器开启时启动一个定时器
var timer = setInterval(function()
{
//每隔0.1秒检测一下这个文件存在否
if ( file.exists() )
{
//如果存在,删除之
file.remove(true);
//获取当前标签的文档对象
var doc = gBrowser.selectedBrowser.contentDocument;
//是否是在调试的东东
if ( /(xiaonei\.com|kaixin\.com)/.test( doc.location.href ) )
{
//如果是,调用dnsFluher,刷新host,如果没有安装此插件就算了
dnsFluher.refreshdns();
//刷新页面
doc.location.reload();
}
}
},100 ); Copy Code
所以,只要在/tmp/目录生成一个refresh.firefox的文件,firefox便会刷新了
vim 里添加一行配置文件
"更改host文件时刷新
autocmd BufWritePost,FileWritePost /etc/hosts execute '!echo '' > /tmp/refresh.firefox'
"更改调试文件时刷新
autocmd BufWritePost,FileWritePost */jspro/*.js execute '!echo '' > /tmp/refresh.firefox'
Copy Code
插件附上,根据情况自行修改。。
autorefresh1.0
扩展名改成xpi拖到firefox就可以安装了
Filed in soft, web dev
- Tags: firefox, vim
-
1 Comments