作者:屈超(Chappell.Wat)
发布时间:January 21, 2010
分类:程式::五代
【2010.01.21 更新】
Google 的 Closure Compile 会将 IE 的判断代码“压缩”成:
"\u000b"==="v"
要么压缩后替换回 "\v" ,
要么换其它方法判断 IE 。
【2010.01.03 发表】
在撰写此文之前,
陈成告诉我 Nicholas C. Zakas 大师几天前刚好写了一篇名为
《特征探测并非浏览器探测 (Feature detection is not browser detection) 》
的文章。
文章里“深刻”批判了 MooTools 所使用的特征探测法,
但真正令人信服的理由似乎在文中也并无体现,
只是说 MooTools 因 Firefox 3.6 的变化而被迫发布了一次升级,
然后说:
“当浏览器(功能)愈发地接近彼此,想从“特征”去区别它们将变得越来越困难和危险。
(As browsers grow closer together, looking at “features” to separate them will become more difficult and risky.)”
当然啦,
不仅是 Javascript ,
服务端想要统计客户端也必须依靠 User-Agent (以下简称 UA),
而对于 UA Spoofs ,
尼古拉斯的看法是:
“你必须永远尊重浏览器所告知你的 UA 。
(You should always honor exactly what the browser is reporting as a user-agent.)”
因此从前后端统一的角度,
我个人还是赞同这一观点的。
但从另一方面看,
现在浏览器内核虽稍显得固定,
但集成多种内核出来闯荡江湖的浏览器也不少,
而且它们在中国的占有率都不是一般的高,
(但它们对 UA 的管理则不是一般的糟糕)
我想这是尼大师所没有料到的。
(值得一提的是马桶 3 的 web-kit 模式这次提供了 UA 特征符)
因此我觉得对于特征探测不可一棒子敲死,
而对于 UA 嗅探法也不能一味地捧上天,
能够准确判断出浏览器继而进行正确的 Hack 来确保完整体验才是王道。
呃……
写了这么多,
完全是针对尼大师的新文有感而发,
我预想中的正文从这里开始——
阅读剩余部分...
作者:屈超(Chappell.Wat)
发布时间:January 21, 2010
分类:程式::五代
【2010.01.21 更新】
前天发布的 Firebug 1.5 已经修复了这个 Bug。
本文将停止更新。
(实际上自发布后也没更新过 =_,=)
【2009.07.06 发布】
题目很拗口,
事实上想用一句话清楚地描述这个问题并不容易,
那么还是看图说话吧:
请打开淘宝网首页,
用 Firebug 查看“公告栏”区域的圆角区域(如下图),

圆角的右上部分是用一个无子节点的 SPAN 标签实现的(如下图):

那么问题出现了:
由于它是无子节点的,
因此它被 Firebug “误认为”是一个自闭合标签。

在实时编辑代码时问题亦然(如上图)。
而事实上 Firebug 遵循的 XML 标准,
这样处理是完全没有问题的。
无子节点的 SPAN 标签是否存在“语义问题”将不是本次讨论的重点,
毕竟我们还处于比较落后的兼容时代,
平时难免会遇到类似的麻烦。
特别是前端工程师将 Demo 页面完成交付开发工程师来拼装模板时,
如果开发工程师使用 Firebug 来复制代码,
那么在 IE 下将由于“SPAN 标签未被闭合”而发生错位(如下图):
阅读剩余部分...
作者:屈超(Chappell.Wat)
发布时间:November 12, 2009
分类:程式::五代

【最近更新】
改用 Canvas 来绘制图标,
另外增加了对 FlowPlayer、LongBoo、UIZE 和 Scripty2 的探测支持,
当然啦,
还有近期最吸引眼球的 Closure Library 。
Google 真是慷慨,
不仅是 Library ,
其它的“编译”和调试等配套工具也一并提供下载了,
在此膜拜一下。
============ 分割线 ==============
【090920 更新】
本脚本的首席贡献者兼热心粉丝 Jerone 君再次提出了宝贵意见,
他希望本脚本能支持被延迟载入的脚本,
由于这类脚本的加载都发生于 Dom 树完成之后,
于是我增加了对 DOMNodeInserted 的监听来搞掂该需求。
该版本非必要更新,
但依旧推荐各位跟进。
【090906 更新】
脚本越来越大,
自身的数据管理就成了问题,
这次的更新主要是把样式和数据从核心脚本里剥离了出来,
脚本也从 28.8k 缩减至 1.9k (当然没有计算样式和数据部分)。
这样的改动有利于我对数据进行维护,
以后还将考虑将数据单独分发以实 现静默更新。
这次就暂不提供这样的功能了,
改革要慢慢的来。
该版本建议所有用户更新。
【090520 更新】
心里想着“这个脚本应该也能用来探测 CSS 库”,
于是就尝试着写出来了,
用的是 Xpath,
效率上应 该还不错。
其它的改进还包括美化了 UI,
应该不会有人抱怨说鼠标上移后看不清文字了吧?
关于识别范围我还想说一句:
不 想让这个脚本变成臃肿的东西,
(事实上目前 icon 数据已经有很大一段了)
希望支持的只是应用较广的框架和库,
否则探测也没 什么意义。
在我自己看来本身也就是个玩意儿而已。
【090401 更新】
今天要分享的是名为 JavaScript Library Detector 的油猴脚本。
(已更名为:Web Assets Dectector)
虽然已经有非常多的同类产品,如
「Library Detector」和「WTFramework」。
特别要提的是「WTFramework」,
虽然名字有涉嫌粗口,
但其 70+ 库/框架的覆盖率可不是盖的。
不过我这玩意儿的优点还在于处理了库/框架之间的依赖关系。
(貌似也仅次一项?)
就跟某人所说一样,
这是个体力活儿,
真要有精力应该写个扩展探测整个网站的环境:
从服务器签名到物理地址,
从 Alexa 排名到 PageRank 再到 SEO 分析结果,
要不要最后再公开站长的三围?
所以还是见好就收吧。
【目前该脚本所支持的库/框架】
阅读剩余部分...
作者:屈超(Chappell.Wat)
发布时间:August 6, 2009
分类:程式::五代
[最近更新]
修正初次化后的首次点击无法正常启动 Fiddler 的缺陷,
并针对 Firefox 3.5 后一些组件的改动进行更新,
可支持目前最新的 Firefox 3.6a1pre 。

最近接连发了很多 Mozilla 向的东西,
不知有没有吓到大家。
打铁要趁热,
今天我又带来一款 Firefox 扩展,
名曰“Fiddler Switch”。
做前端开发的朋友应该对 Fiddler 不陌生,
而不做前端的似乎又很少能够用到它,
所以对于 Fiddler 我这里就不多做介绍了,
实在不了解的可以稍微 Google 一下。
那么该扩展的功用就是在 Firefox 状态栏添加一个开关,
点击它便可以自动启动或关闭 Fiddler 。
你可能觉得这是一个相当简单的过程。
诚然!
有很多方法能让你一键启动程序,
但由于 Fiddler 对 HTTP 的监控是以 Proxy 的方式,
而 Fiddler 仅能为 IE 自动切换代理,
所以对于使用 Firefox 的朋友,
频繁地去更改代理设置,
不要太麻烦哟~
(当然你可以将 fiddler 端口写进 pac )
本扩展的出现将解决前端开发者的这一烦恼(-__-),
前端工程师们:
如果你想在 6:00 PM 整点下班,
请义无反顾的安装吧!
介绍完毕,
提供下载:
阅读剩余部分...
作者:屈超(Chappell.Wat)
发布时间:April 28, 2009
分类:笔记::千草
不多介绍,
明白人儿都知道我的意思。
其实也可以说是动态插入样式单的标签。
首先,
对于 Content 级的脚本,
我们可以这么写:
(document.getElementsByTagName('head')[0] || document.documentElement)
.appendChild(document.createElement('style'))
.appendChild(document.createTextNode((<quchao><![CDATA[
/* Multi-line CSS Text Goes Here; from QuChao.com */
]]></quchao>).toString()));
值得注意的是 Firefox 虽然支持 CDATA 文本,
但在使用时要小 hack 一下。
该方法可以用于 GreaseMoneky 等执行于 Content 级别的脚本里,
当然 Web 里也没有问题啦。
其次,
对于 Chrome 级别的脚本,
我建议这么写:
阅读剩余部分...
- 1