JavaScript

浏览器鼠标中键点击差异

鼠标中键的点击的行为默认情况下,通常是创建新的tab并在其中打开指定的链接。浏览器发展到今天,对于鼠标中键点击的事件处理上,仍然没有能够统一,这导致对应于中键的监听变得不可靠,而对于习惯用中键的用户来说,点击某些链接会出现意料之外的结果。 下面对现行浏览器的一般表现做一些总结,浏览器分别为:IE9, FF31,Chrome36以及Opera的Presto内核的末代版本12.17,本文结果均以这些版本为限。 测试代码很简单,由于各浏览器对于鼠标键位的索引值也有些许不同,所以用了jQuery来统一。<a>中的<span>是故意添加的,下文会有说明。 <a href=…

完全理解JavaScript关键字this

这是一篇译文。当时看到原文的时候觉得内容非常易懂,是不可多得的好文。所以一开始就扔进草稿箱准备翻译,不过一晃好久过去了,最新发布的博文ID是1190,而这篇的ID是715,可见其在草稿箱里待了有多久。而这期间网络上也已经有了这篇文章的翻译稿,不过传播并不广泛,我搜索了下并没有多少索引和转发量。总体来说,已有的翻译稿总体来说也挺好,但是但从第二节开始,翻译变的有些随意,并且出现了很多偏差,有大有小,虽不影响阅读却多少妨碍理解。比如将“传递函数作为值”译成“传递函数的值”等等,这很容易引起混淆。另外还遗漏了一小部分内容的翻译,不知道是否是原作者后期更新内容所致。 个人挺喜欢这篇文章,所以网上虽已有一版,但还是希望用自己的翻译语言来描述一遍。尽管可能显得多余,…

JavaScript最小时间片

《高性能javascript》有一段“定时器的精度”,说的是JS的定时器并不精确,并且因为系统定时器分辨率的关系,JS的定时器最小值建议设置为25ms。并提到大多数浏览器在定时器延迟等于或者小于10ms时表现的并不一致。 其他我查到的资料也显示,在大部分的浏览器里不允许小于10ms的延时。来自微软方的资料则说这个精度最小是16ms。对于动画的时间片而言,16ms的精度正好对应约为60FPS。当然,还有各种其他说法。 比如,David Baron 在 setTimeout with a shorter delay 里说到: 小于10ms的延时会被强制延长,Chrome将这个延时缩减到2ms,但同时导致了一些问题。 不过我并没有在最新版本的Chrome里遇到他提到的“一些问题”,而且,…

那些JavaScript的细节问题(1)

JS写的多了以后,日常也就会遇到各种各样扯淡的问题。这些问题往往只是无关紧要的细枝末节,但偶尔有时候,也会给我们造成一些困扰。于是,我打算不时的拿出一些这类问题讨论和记录,这样,需要答案的人可以找到。没事看看的朋友,也可以当作消遣:) 鉴于这类问题浏览器相关性很强,所以每次我都有必要说明测试环境,我把它们写在最后,当我讨论这些问题的时候,都默认限制在这个测试环境之内。 1. alert() 内容为空时,出现什么? 先来一个比较简单的。如果你未曾尝试,想象一下,直接无参数调用 alert() 会跳出什么? Chrome 和 Safari 弹出内容是…

nodejs目录遍历

近期解决一个问题的时候,需要一个简单的目录遍历。目录遍历挺常见,操作一个文件夹里的所有文件,替换或者添加删除某些东西是非常普遍的操作。由于 nodejs 本身并没有提供类似的API,所以这部分就得由自己实现。 虽然没有直接的遍历API,但是 nodejs 的文件操作也已经非常便利,用 fs.readdir 和 fs.stat 这两个API的组合就能达到目的。 出于参半程序员的懒惰的劣根性,其实在这之前我也搜索过看看是否有现成的可以拿来用,也确实有这种完善的 module,比如 node-walk,我试用过后觉得还是非常不错的: var walk = require(…

JavaScript vs jQuery 元素集合

译自:JavaScript vs jQuery HTML Collections HTML集合(HTMLCollection)对象是 document.getElementsByTagName,document.getElementsByName 以及 document.getElementsByClassName(并非所有浏览器都支持)这些方法的返回值。表面上看,它们与数组相似,因为它们有length属性,并且元素可以通过索引[index]被访问。然而,它们并不是数组。诸如 push(),slice() 和…

NodeJS之始

Node.js 可以称得上是过去一年里最热门的项目,现在整个NodeJS社区也都非常活跃,不论是关注的还是围观的,都对这个项目抱有极大的兴趣。说来惭愧,虽然自己也一直想接触,但总是再三都把精力花在了其它乱七八糟的地方。既然今年下决心把重心从CSS挪回JS,NodeJS自然是不能再错过了。 我看的是著名的 Manuel Kiessling 的 The Node Beginner Book 的中文版 Node入门,超级赞的教材——也许其作者并非是JS的专家,但是绝对是写教材的天才。轻松的语言和明晰的思路,使读者花不了多久就能明白Node是个什么,以及,它能干什么。 关于node的说明我就不罗嗦了,网络上已经有太多可供参考。…

jQuery plugin - Scroll to Top

“返回顶部”的应用相当广泛,在典型的超长页面里,它几乎是必须的。比如新浪微博里,页面的长度因数据的加载而长达数千像素,它的“返回顶部”并没有太多特别之处,唯一有趣的是那个向上箭头是有两个字符组合而成而并非图片: <a href="javascript:;" id="base_scrollToTop" class="W_gotop" style="visibility:hidden;…