使用 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 ,
由之前的纯文字修改为播放按钮(如图):

“借”用自 Mozilla 的官网页面,
假如有任何版权风险请告知我予以移除。
3. 增强了兼容性。
特别是一些朋友所反应的
类似“同一个 Flash 被 Block 两次”的问题。
这个问题的出现是页面开发者为了去兼容不同浏览器
使用了传说中被广泛推荐的 The nested-objects method .
其原理是使用双层标签,
外层 object 标签供 IE 所使用,
内层 object/embed 标签则供其它浏览器所使用。
Firefox 自然是属于后者,
我也是按后者的逻辑去做的处理,
但难免会遇到特殊情况,
如果你有遇到,
请留言或写信告诉我。
好了,
所需文件分别是:userContent.css 和 block-flash-lite.xml 。
安装方法可参考下方的旧文,
正在使用 1.0 版本的朋友请直接替换 xml 文件然后刷新页面即可,
无需重启 Fx 哦~