使用 XBL 为 Firefox 简单实现 FlashBlock

作者:屈超(Chappell.Wat) 发布时间:March 23, 2011 分类:程式::五代

【2011.03.23 更新】

看到有同学留言提到 Chrome 下的 FlashBlock 方案,
我想说的是 Chrome 的 Dev 版已经原生支持了本特性
开启方法如下:

1. 在地址栏输入 about:flags ;
2. 找到名为 Click to play 的那一项;
3. 点击 Enable 并刷新包含 Flash 的页面就会看到效果。

当然,
Chrome 的这个开关是针对所有插件而设的,
所以如果是 Java 或 Silverlight 的内容也会被要求 Click to play ,
应该算是正中了大伙儿的下怀吧?LOL

【2011.02.21 更新】

谁曾想这个小东西还有不少人在使用呢?
更有热心的朋友写邮件向我报告了 Bug ,
于是上周末在家针对大家的意见做了一次更新,
主要的改进点如下:

1. 支持了简单的白名单功能,
目前仅进行地址的前缀匹配,
比如你要将谷歌音乐加入白名单,
(页面地址:http://g.top100.cn/xxx/html/player.html)
只需要修改 block-flash-lite.xml 的如下代码:

var whiteList = [
    'http://g.top100.cn/',
];

每个地址前缀占一行,
被匹配到的页面即不阻拦 Flash 的加载。
考虑到大家对于白名单的理解可能各不相同,
所以目前没有支持正则匹配,
但要支持并不难,
所以大家对白名单有什么具体要求,
(是支持完整的正则?还是简单地仅需要 * 通配符?)
请留言或 email 给我,
在收集意见后我将在下次进行更新。 :)

2. 调整了 UI ,
由之前的纯文字修改为播放按钮(如图):

Brandnew UI of FlashBlockLite

“借”用自 Mozilla 的官网页面
假如有任何版权风险请告知我予以移除。

3. 增强了兼容性。
特别是一些朋友所反应的
类似“同一个 Flash 被 Block 两次”的问题。
这个问题的出现是页面开发者为了去兼容不同浏览器
使用了传说中被广泛推荐的 The nested-objects method .
其原理是使用双层标签,
外层 object 标签供 IE 所使用,
内层 object/embed 标签则供其它浏览器所使用。
Firefox 自然是属于后者,
我也是按后者的逻辑去做的处理,
但难免会遇到特殊情况,
如果你有遇到,
请留言或写信告诉我。

好了,
所需文件分别是:userContent.cssblock-flash-lite.xml
安装方法可参考下方的旧文,
正在使用 1.0 版本的朋友请直接替换 xml 文件然后刷新页面即可,
无需重启 Fx 哦~

阅读剩余部分...

修复 Firebug 对无子节点的非自闭合标签的“识别问题”

作者:屈超(Chappell.Wat) 发布时间:January 21, 2010 分类:程式::五代

【2010.01.21 更新】
前天发布的 Firebug 1.5 已经修复了这个 Bug。
本文将停止更新。
(实际上自发布后也没更新过 =_,=)

【2009.07.06 发布】
题目很拗口,
事实上想用一句话清楚地描述这个问题并不容易,
那么还是看图说话吧:

请打开淘宝网首页,
Firebug 查看“公告栏”区域的圆角区域(如下图),

淘宝网“公告栏”圆角

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

a blank non-self-closing tag issue of firebug - source viewing

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

a blank non-self-closing tag issue of firebug - source editing

在实时编辑代码时问题亦然(如上图)。
而事实上 Firebug 遵循的 XML 标准,
这样处理是完全没有问题的。

无子节点的 SPAN 标签是否存在“语义问题”将不是本次讨论的重点,
毕竟我们还处于比较落后的兼容时代,
平时难免会遇到类似的麻烦。
特别是前端工程师将 Demo 页面完成交付开发工程师来拼装模板时,
如果开发工程师使用 Firebug 来复制代码,
那么在 IE 下将由于“SPAN 标签未被闭合”而发生错位(如下图):

阅读剩余部分...

[UserScript] Web Assets Detector 1.4.4

作者:屈超(Chappell.Wat) 发布时间:November 12, 2009 分类:程式::五代

Web Assets Detector

【最近更新】
改用 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 分析结果,
要不要最后再公开站长的三围?
所以还是见好就收吧。

【目前该脚本所支持的库/框架】

阅读剩余部分...

[090806] Fiddler Switch 1.5 - Firefox Extension

作者:屈超(Chappell.Wat) 发布时间:August 6, 2009 分类:程式::五代

[最近更新]

修正初次化后的首次点击无法正常启动 Fiddler 的缺陷,
并针对 Firefox 3.5 后一些组件的改动进行更新,
可支持目前最新的  Firefox 3.6a1pre 。

Fiddler Switch Context Menu

最近接连发了很多 Mozilla 向的东西,
不知有没有吓到大家。
打铁要趁热,
今天我又带来一款 Firefox 扩展,
名曰“Fiddler Switch”。

做前端开发的朋友应该对 Fiddler 不陌生,
而不做前端的似乎又很少能够用到它,
所以对于 Fiddler 我这里就不多做介绍了,
实在不了解的可以稍微 Google 一下

那么该扩展的功用就是在 Firefox 状态栏添加一个开关,
点击它便可以自动启动或关闭 Fiddler 。

你可能觉得这是一个相当简单的过程。
诚然!
有很多方法能让你一键启动程序,
但由于 Fiddler 对 HTTP 的监控是以 Proxy 的方式,
而 Fiddler 仅能为 IE 自动切换代理,
所以对于使用 Firefox 的朋友,
频繁地去更改代理设置,
不要太麻烦哟~
(当然你可以将 fiddler 端口写进 pac )

本扩展的出现将解决前端开发者的这一烦恼(-__-),
前端工程师们:
如果你想在 6:00 PM 整点下班,
请义无反顾的安装吧!

介绍完毕,
提供下载:

阅读剩余部分...

修复 Thunderbird 内置的“附件提醒”功能

作者:屈超(Chappell.Wat) 发布时间:July 20, 2009 分类:程式::五代

大概从 Thunderbird 3 的某个 beta 版本开始,
“附件提醒 (Attachment Reminder)” 就成为其内置的一项功能了。
而在此之前,
是需要安装一些扩展才能获得相应功能的。

然而这个新功能并不尽如人意,
首先它不对标题栏进行检查;
其次其检查关键字的效率并不令人满意;
当然最严重的是:
它并不支持中文。
(应该说是非 ANSI 字符)
这种 bug 这应该算 Mozilla 系列的诟病了。
可能由于 Thunderbird 3 的装机量着实不高,
我在 Bugzilla 中没有搜寻到相关的缺陷报告。

既然没有,
咱们就自己动手修。
“说时迟,那时快”,
当你们看到本文的时候,
其实我已经完成 bugfix 了。
在此特别感谢 SpriteVan  君充当了小白鼠。

可能有的观众才刚刚打开电梯,
还不知道 Thunderbird 3 内置的附件提醒功能究竟如何使用,
下面就请容我置喙一下,
向大家介绍该功能的使用方法:

阅读剩余部分...