求知若饥,虚心若愚

各浏览器 for-in 遍历对象属性的顺序差异

2 months ago by 刘巍峰 in (0 comments)

最近一个项目的开发中,初始化导航菜单的数据,后台给定的数据是 JavaScript 对象,其键是菜单的 id (数字),值是菜单对象。数据如下:

var menuList = {
    '26':{'name':'新闻','model':'list'},
    '23':{'name':'娱乐','model':'list'},
    '25':{'name':'体育','model':'list'},
    '21':{'name':'读书','model':'list'},
    '24':{'name':'时尚','model':'list'},
    '22':{'name':'女性','model':'list'}
};
var info = document.getElementById('info');
for (menu in menuList) {
    info.innerHTML += menu + " : " + menuList[menu]['name'] + "<br/>";
}

在 IE6、IE7、IE8、Firefox、Safari(包括 iPhone)中,遍历得到的结果,和给定的一致:

26 : 新闻
23 : 娱乐
25 : 体育
21 : 读书
24 : 时尚
22 : 女性

而在 IE9、Chrome、Opera、Android  中,输出的顺序则是:

21 : 读书
22 : 女性
23 : 娱乐
24 : 时尚
25 : 体育
26 : 新闻

(更多…)

jQuery 1.7 新的事件 API

2 months ago by 刘巍峰 in (0 comments)

今天发布的 jQuery 1.7 中,对以前的 bind/unbindlive/diedelegate/undelegate 三个事件绑定方法做了统一:

$(elements).on( events [, selector] [, data] , handler );
$(elements).off( [ events ] [, selector] [, handler] );

当提供了selector参数时,.on() 和以前的 .delegate() 方法十分类似;当selector参数忽略或为空时,又和以前的 .bind() 很相似。

有一点需要注意,当 data 参数是字符串类型时,必须要提供一个 string 类型的 selector 或 null,来防止 data 被误认为是 selector。

以前旧的事件 API 在1.7 中依然保留,但是官方推荐使用新的 API。以下是新旧 API 的几个对比例子。

$('a').bind('click', myHandler);
$('a').on('click', myHandler);

$('form').bind('submit', { val: 42 }, fn);
$('form').on('submit', { val: 42 }, fn);

$(window).unbind('scroll.myPlugin');
$(window).off('scroll.myPlugin');

$('.comment').delegate('a.add', 'click', addNew);
$('.comment').on('click', 'a.add', addNew);

$('.dialog').undelegate('a', 'click.myDlg');
$('.dialog').off('click.myDlg', 'a');

$('a').live('click', fn);
$(document).on('click', 'a', fn);

$('a').die('click');
$(document).off('click', 'a');

Android 修改 hosts

4 months ago by 刘巍峰 in (0 comments)

因为某个众所周知的原因,有时需要指定域名对应的 IP 地址,Windows 上比较容易,修改 Windows/System32/drivers/etc/hosts 文件即可。

在 Android 下,/etc 是 link 到 /system/etc 的,我们需要修改 /system/etc/hosts 来实现。但是这个文件是只读,不能通过 shell 直接修改。可以通过连接到 PC 上使用 adb 来修改。步骤如下:

  1. 获得 root 权限:adb root
  2. 设置/system为可读写:adb remount
  3. 将 hosts 文件复制到PC:adb pull /system/etc/hosts <PC机上文件名>
  4. 修改PC机上文件
  5. 将PC机上文件复制到手机:adb push <PC机上文件名> /system/etc/hosts

完毕。

Eclipse 的 Tomcat 插件

7 months ago by 刘巍峰 in (3 comments)

Sysdeo Eclipse Tomcat Launcher plugin 最新版本 3.3 添加了对 Tocat 7.x 的支持。

下载地址:http://www.eclipsetotale.com/tomcatPlugin/tomcatPluginV33.zip

增加了两个快捷键:

  1. ALT + T 重启 Tomcat
  2. CTRL + ALT + T 启动/停止 Tomcat

官网:http://www.eclipsetotale.com/tomcatPlugin.html

解决在iframe页面里使用了DD_belatedPNG后显示空白的bug

8 months ago by 刘巍峰 in (2 comments)

IE6不支持png的图片,DD_belatedPNG这个js脚本可以使png图片或背景透明,http://www.dillerdesign.com/experiment/DD_belatedPNG/ 。但在使用过程中发现一个问题,当页面嵌在iframe里面时,显示的是空白,什么都看不到,问题出现在下面这个地方:

if(a.currentStyle.position=="static"){
    a.style.position="relative";
}

这里的a元素没有排除HTML节点,把HTML的position也设为relative了,改为下面的代码即可解决问题:

if(a.currentStyle.position=="static"){
    if(a.nodeName!='HTML'){
        a.style.position="relative";
    }
}

Firefox 4.0 正式版发布

10 months ago by 刘巍峰 in (8 comments)

今天 Mozilla 基金会发布了火狐4浏览器(Firefox 4)正式版。

火狐4浏览器

火狐4新增添的主要特性之一是,火狐浏览器内核得到相当大幅度的改进。与目前的稳定版火狐3相比,火狐4的 JavaScript 性能提高了2倍。火狐4的速度与IE9、Opera 和 Google Chrome相当。

火狐4对互联网标准的支持程度更高,其中包括CSS3、HTML5和互联网图形兼容性。其他重要的特性包括硬件加速、WebM格式视频、隐私控制,以及在Windows 7平台上支持多点触控。

作为 web 开发人员,我关心的是Firefox4 对 HTML5、CSS3等的支持。以下是在 http://fmbip.com 中,Firefox 4 的测试结果。

火狐4对CSS3的支持。点击图片放大

火狐4对CSS3的支持。点击图片放大

火狐4对 HTML5 的支持。点击图片放大

火狐4对 HTML5 的支持。点击图片放大

火狐4对 HTML5 form2 的支持。点击图片放大

火狐4对 HTML5 form2 的支持。点击图片放大

火狐4对 CSS3 选择器的支持。点击图片放大

火狐4对 CSS3 选择器的支持。点击图片放大

上述测试来自Findmebyip.com,这个网站基于modernizr项目,能够快捷检测出浏览器对付HTML5新特征的支持。

 

更多关于 Firefox4 的介绍,请访问官网:http://firefox.com.cn/features4.0/

《同桌的你》程序员版

10 months ago by 刘巍峰 in (3 comments)

昨天的离别宴后,江宁在 KTV 唱了这首翻版的《同桌的你》,感慨良多啊……

明天你是否会想起

昨天你写的程序

明天你是否还惦记

曾经爱编程的你

领导们都已想不起

曾经爱加班的你

我也是偶然看程序

才想起同事的你

谁聘了牛B烘烘的你

谁安慰天天加班的你

谁把你的设计做起

谁给你做的升级

 

你从前总是很小心

从不把离职提起

你也曾无意中说起

薪水实在太低

那时候屏幕总在闪

日子总过得太慢

你总说离职遥遥无期

转眼就各奔东西

谁聘了牛B烘烘的你

谁安慰天天加班的你

谁看了我给你写的信

谁把它删在回收站里

旭日阳刚《春天里》,春晚绝唱

11 months ago by 刘巍峰 in (1 comment)

汪峰已经要求旭日阳刚不能以任何形式唱《春天里》这首歌曲了。我支持汪峰这种保护音乐版权的想法,但是我知道,这首歌,即使汪峰自己唱,也永远唱不出来那种沧桑、感人的感觉了。“汪峰从底层熬出来了,唱的是成功后的迷惘和对奋斗青春的回顾。 旭日阳刚则唱出了底层草根的困苦沧桑,更唱出了视歌唱为生命的力量。”春晚舞台上,当二人从舞台上徐徐升起时,看到如此漂亮的舞台,无数期待的目光,那个抱着吉他哽咽着唱破音的旭日阳刚,给予了这首歌灵魂。

旭日阳刚组合在央视2011春晚上演唱《春天里》
旭日阳刚组合在央视2011春晚上演唱《春天里》 图片点击放大

(更多…)

转载:我奋斗了18年,却来不及和你坐在一起喝咖啡

11 months ago by 刘巍峰 in (1 comment)

本文转载自和菜头的树洞,原文地址:http://www.shu0.net/?p=10864。如需转载,请注明原始出处。前几年,《我奋斗了18年才和你坐在一起喝咖啡》《我奋斗了18年,不是为了和你一起喝咖啡》两篇文章,曾引起网友的很大反响。而这一篇《我奋斗了18年,却来不及和你坐在一起喝咖啡》,真实的描述了现在当下时局的诸多弊端,让人感同身受,撕心裂肺。

一位没有署名的朋友来信说:

菜头,你好!连日来总有写点什么的念头,自然是觉得心中悲苦,无处言说。身边我这个年纪的朋友,给他们说这些事,似乎有些不合时宜了,至于年轻的伙伴,或许告诉他们也未必起到我期待的效果。想想偌大比特海,第一反应竟然是跑来树洞排解,真的谢谢你,也谢谢树洞。

起这个题目是受曾经那两篇网络上广为流传的文章影响。所以你应该也猜到大意了,让我觉得悲苦的并不是我自己的事,至少我自己看来,我这段日子活得滋润极了。空气阳光面包爱情,都足够我最大的需求。我真的没办法去跟自己的同事同学讲我很悲哀,感到痛苦。换位思考我也会认为自己是在装逼,不过我相信树洞会有人理解吧。希望看到的人不要觉得可笑。

《我奋斗了18年,却来不及和你坐在一起喝咖啡》

似乎不少人都已经认同,农村娃要来到城市并且过上不错的生活,就应该勤奋律己艰苦拼搏,在城市乱葬岗般的钢铁丛林里要挤出一条活路,只能是爱拼才会赢。可是他们都忽略了事情的源头,那所谓的三分天注定。是的,不公平才是常态,正因为每个人都感觉不公平,世界总算实现了另一种意义上的公平。但长久以来的麻木,已经没有几个人去申诉这种不公平的扩大和加深,这难道不悲哀吗?一个显而易见的事实是,5到10年前大学毕业后选择继续在北上广奋斗的农村孩子,还有机会依靠自己不超过两个人的力量结婚生子,买房买车,幸福地活着。而这一两年的农村大学生,如果没有贵人相助,没有奇迹发生,基本就没有在一线城市独立生活的可能了。

(更多…)

Go to Top