模拟里 firebug 的 DOM inspect 功能

常规思路

在 firefox 里如何实现 firebug 的 DOM inspect 选择功能?

  • 首先,我们会 document 里添加 mouseover 事件时在 HTMLElement 上飘一个 absolute 的容器,设置 border 。
  • 接着, mousedown ,这个 absolute 的元素隐藏;
  • 再着着, click 结束后从事件里的 event 得到 target ,从而再得到 inspect 。

可这样是不是真的能做到呢?

IE6 SP1+SSL+AJAX(XMLHttpRequest)=trouble

问题描述

在 IE 6 SP1 访问 https 站点, AJAX 会随机出现一个 winet 的状态码: 12152 。
网上 有不少人遇到了这困惑的状态码。

说明

  • Windows 下的 IE 里 new ActiveXObject(progId) 生成的 XMLHttpRequest 是 winet 的一部分。
  • IE 7 以下对 SSL ( 即 HTTPS) 的支持不够好。

HTML Form 里 radio list 的用户体验细节

HTML Form 里 radio list 的用户体验细节相当赞:

  • 可支持方向键
  • 当 radio 最后一个选中时,按小键盘后会自动跳回第一个
  • checked 可自动触发 onclick
  • 支持各种浏览器, cross-browser

用这个特性,可以做一个无障碍的 TabView :)

从 trim 原型函数看 JS 正则表达式的性能

问题

一般情况下用正则写法为:

<script type="text/javascript">//<![CDATA[
  String.prototype.trim = function () {
    return this.replace(/^[\s\t ]+|[\s\t ]+$/g, '');
  }
  s = ' rank\'s weblog, www.rank.im ';
  alert(s.trim().length);
//]]></script>

如果遇到大数据的变长字符串的话就会发现这个是很耗资源的。
效率并不高,有的时候甚至无法忍受。

十一北京五日游记(二)

10.3 颐和园一日游

值得一说的是当天去颐和园之前,我认为我在中关村附近应该离那很近,坐车去那应该要不了多久。
事实上恰恰相反,在快到颐和园那的一条路堵死了。

只好步行了十几分钟才到了颐和园。
进了园被人潮所包围,没有找到更好的地方拍风景。

瞧这黑压压的人群。

十一北京五日游记(一)

来北京工作半年有余了。

由于工作的原因没有太多时间去看看北京这座城市。正好十一有空,也顾不上人多,去看了看北京的一些传统的旅游景点。

也尝了一些北京特色的小吃。

Firefox 2 正则表达式全半角问题

问题

先问一个问题, 在 firefox 2 里,正则表达式字符"\d"全等于"[0-9]"吗?

有可能你会答「是,他们相等」,也有可能你去查了查手册, 看到以下的解释:

\d Matches a nondigit character. Equivalent to [^0-9]. 匹配一个数字字符。等价于 [0-9] 。

那我们测试一下以下代码:

 //http://rank.im
 alert(/^\d{2}$/.test("12"));
 alert('请注意,12是全角');

IE 在 DOM 操作有表单控件时的 bug

bug 描述

  • 影响的范围: IE 的所有版本
  • 在表单的 radio/checkbox 控件中,一旦他们的 DOM 结构被更改过就会出现这个 bug 。
  • 操作了表单 radio/checkbox 的 DOM 结构时(或者直接影响了他们的结构时)选中的 checkbox/radio 将会自动恢复到默认状态,
  • 有如点了 reset 按钮一样。