使用 XBL 为 Firefox 简单实现 FlashBlock

沙滩凉鞋 发布于2010-09-30 18:30 | 204次阅读 | 字体: 打印预览


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

photo

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

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

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

[...]


本文出处 : http://www.quchao.com/entry/how-to-write-a-flashblock-with-xbl/ end

上一篇:消息称微软有意收购“第二人生”开发商

下一篇:利用 CSS 跨浏览器地隐藏文字一法。