【最近更新】

同步更新至 1.3.2 版,
并增加供 Firefox 3.1+ 使用的1.4.0a12 版本。

如果你看过我的上一篇文章……
应该已经了解我要解决的这个 Bug 究竟是怎么一回事儿……

很不幸 FirefoxFirebug 都有类似 Bug ……
也即在外部编辑器中查看网页 HTML 源码的乱码问题……
该 Bug 在 Firebug 的历代版本中均存在……
除了 Windows 我也在 Mac 版上发现了该 Bug ……

但与 Firefox 本身的问题不同……(见我前一篇文章
Firebug 采取的另外一种方式来处理……
但显然也没能够逃脱产生乱码的“厄运”……

Bug 具体的描述如下……
如果你通过 Firebug 的菜单命令配置过外部编辑器……
(Tools -> Firebug -> Open With Editor -> Configure Editors)
那么配置完毕后将在你的右键上下文菜单中显示 Open With Editor 命令组……(如下图)

Open with editor in Firebug

通过这个命令组……
你可以选择不同的编辑器对当前的网页源码进行查看和编辑……
确实非常便捷……
但是……
当你想用 Firebug 的这一功能查看任何包含有非 ASCII 字符的网页时……
你则可能遇到下面两种问题……

第一种……
当你想要查看任何包含非 ASCII 字符的线上页面源码时……
你可以正常打开它……(因为 Firebug 用 ascii 字符命名 tmp 文件)
但你看到的内容将是存在乱码的……(如下图)

Encoding bugs with viewing online source file in firebug

第二种……
当你把一个文件名中包含非 ASCII 字符的文件拖进 Firefox ……
并想要查看其源码时……
你的编辑器却连文件都无法打开……(如下图)

Bug with viewing local source file in Firebug

研究 Firebug 源码后得知……
对于第一种情况……
是由于 Firebug 没有对 Unicode 的源码进行转码所致……
而第二种情况……
则是因为 Firebug 在向编辑器发送命令行参数时没有对文件名进行转码……
(如果你还想追问我为何 Firebug 的源码面板没有乱码……
我可以顺便告诉你:因为这些流程都在 Firefox 内部……)

知道了造成 Bug 的原因……
我们就可以操刀开始解决了……

对于第一种情况……
只需要将其转为 UTF-8 编码即可……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js 文件……
搜索:

temporaryFiles.push(file.path);

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start data = convertFromUnicode('UTF-8', data); // Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end

对于第二种情况……
则稍微复杂一点……
因为通过命令行发送参数到系统时需要根据系统的 non-unicode 默认编码来转码……
(由于条件所限我这里仅针对 Windows 进行修改)
比如我虽然使用英文系统……
但是为了完美支持中文我将字符集改成了 936 ……
那么我就需要将那个“乱码”文件名转为 GB2312 或 GBK……
其它语言的用户请按情况修改……(如果你看得懂的话)
同样是打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\firebug.js ……
搜索:

args.push(localFile);

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 start if ('WINNT' === getPlatformName()) { localFile = convertFromUnicode('GB2312', localFile); } // Hacked by Chappell.Wat @ QuChao.com on 2008-10-14 end

这样就大功告成了……
自动判断系统 non-unicode 默认编码的方法我已经找到……
有待我测试后更新……
在此之前请各位还是手动修改吧……
@081015 更新:
我今天测试的时候发现……
某些情况下 Firebug 的代码并不能完全处理 UTF8 的 BOM 头……
所以我们再写一段代码来自己清除它……
打开 profile\extensions\firebug@software.joehewitt.com\content\firebug\lib.js ……
搜索:

var segments = [];

在其下方添加代码:

// Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 start var fileLen = stream.available(); if ('UTF-8' === charset && fileLen > 3) { var bom = sis.readBytes(3); if (String.fromCharCode(239, 187, 191) !== bom) { segments.push(bom); } } // Hacked by Chappell.Wat @ QuChao.com on 2008-10-15 end

不过这样做是否会有什么副作用我暂时还不知道……
是否修改就看你个人选择了……

最后……
为懒人们提供修改完成的版本……(v1.2.1)
不堪乱码困扰的你一定要下载……
Bug 我也会提交到Firebug 的官方讨论组……
希望以后不用劳烦我们自己修改就能避开这种恼人的问题……

【更新记录】

[081015]:  提供 1.2.1 版本;
[090219]: 更新至 1.3.2 版,并增加供 Firefox 3.1+ 使用的1.4.0a12 版本;

【下载链接】

Firebug v1.3.2 for Firefox 3.1-:
国外: http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.3.2-fx_fixed_by_quchao.xpi

Firebug v1.4.0a12 for Firefox 3.1+:
国外: http://www.quchao.com/projects/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/firebug-1.4.0a12_fixed_by_quchao.xpi

特别提示

这些天针对优酷、土豆和 56 进行了更新……
大家都知道……
优酷采用了分段视频的储存方式……
而我实在没空将支持多视频分析的半成品 Downflv.com v2 更新上线……
所以我采取了另一种改良方式对目前的优酷分段视频进行了支持……(使用 data:URI)
所以对于优酷分段视频的分析仅支持 Firefox、Chrome/Safari、Opera 等浏览器……
只能对 IE 用户说声抱歉了……

最近更新

前天完成了 Opera Widget for FLV Downloader 并提交到官方 ……
不幸成为 Opera 官方上的第四款国产 Widget ……
LOL……
不过还有一个遗留问题:
无法从 Opera 获取当前 Tab 的 URL ……
如您知道此方法望不吝赐教……
PS:
刚发现用 Opera 浏览下载器页面会变得惨不忍睹…… (所幸使用正常……)
怪我当初没给 GGAD 留下好位置……
Opera 用户再忍几日……
待我的新界面出炉……

至此 Maxthon、Firefox、Opera 的插件均业已齐全……
官方下载地址如下(用相应浏览器均可以在线安装):

Maxthon Plugin for FLV Downloader
Firefox Extension for FLV Downloader
Opera Widget for FLV Downloader

下个目标是 IE7 的 Addon ……

Downloader Logo

下载器地址如下
http://www.quchao.com/video/

如果您觉得本工具侵犯了贵站权益……
联系我……
我会尽快移除……

具体支援的站点列举如下(按英文字母序排列):

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

开发日志:

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

BookMarkLet 使用方法

  1. BookMarkLet 收藏到浏览器收藏夹(可以直接拖拽该链接到工具栏的‘收藏夹’的图标上)……
  2. 然后访问本下载器所支援的视频站台……并找到自己中意的视频页面……
  3. 从收藏夹调用刚才我们收藏的项目…… 此时浏览器会自动转到本下载器并开始分析视频的真实地址……
  4. PS: 有些站台的视频无法通过此方法下载…… 他们可能使用了 Ajax 或者框架等技术使得当前浏览器地址并非视频观看地址…… 您仍然需要采用传统方法来获取下载地址……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

Maxthon 快捷搜索使用方法

  1. 如果您是傲游(Maxthon)用户…… 请点击傲游快捷搜索链接…… 随即弹出“添加搜索引擎”对话框……
  2. 在“缩写”输入框中填写您中意的快捷搜索字符…… 比如 flv ……
  3. 点击确认…… 添加完毕……
  4. 您只需要在浏览器地址栏输入 “flv http://www.xxx.com/url_to_the_video” 即可转到本下载器并开始分析视频的真实地址……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

IE7 快捷搜索使用方法

  1. 如果您是IE 7用户…… 请点击 IE7 快捷搜索链接…… 随即弹出“添加搜索引擎”对话框……
  2. 点击确认…… 添加完毕……
  3. 您只需要把浏览器默认搜索切换到 FLV Downloader …… 进而在搜索框输入“http://www.xxx.com/url_to_the_video” 即可转到本下载器并开始分析视频的真实地址……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

Maxthon 插件使用方法

  1. Maxthon 官方地址:Maxthon Plugin for FLV Downloader
  2. 如果您是傲游(Maxthon)用户…… 请点击傲游插件链接进行下载……
  3. 解压为 flvdownloader 文件夹……
  4. 将此文件夹移动到 Maxthon/Plugin 文件夹下……
  5. 重启浏览器即可在插件栏找到工具图标…… 遇到中意的视频请在该页面下单击改图标即可使用本下载器进行下载……
  6. 注意:如果您使用了 Maxthon2 …… 点击下载器菜单栏 “快捷工具->傲游工具” 即可实现自动安装……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

FireFox 插件使用方法

  1. Firefox 官方插件地址:Firefox Extension for FLV Downloader
  2. 如果您是 FireFox 用户…… 请点击 FireFox 插件进行下载……
  3. 放置到 Firefox/Extensions 文件夹下……
  4. 重启浏览器即弹出安装插件的询问窗口…… 点击“安装”即可……
  5. 可在浏览器下方的状态栏右方找到工具图标…… 遇到中意的视频请在该页面下单击改图标即可使用本下载器进行下载……
  6. 注意:点击下载器菜单栏 “快捷工具-> Firefox 扩展” 即可实现自动安装…… (需要先将本站添加为信任站点……)

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

Opera 控件使用方法

  1. Opera 官方插件地址:Opera Widget for FLV Downloader
  2. 如果您是 Opera 用户…… 请点击 Opera 控件 进行下载……
  3. 用解压软件解压……
  4. 开启 Opera 浏览器…… 从菜单选择“打开”并打开 config.xml 文件即安装完毕……
  5. 浏览器会同时开启本控件…… 将包含视频页面的地址输入到……
  6. 注意:点击下载器菜单栏 “快捷工具-> Opera 控件” 即可实现自动安装……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

IE 右键插件使用方法

  1. 如果您是 IE 用户…… 请点击 IE 右键插件进行下载……
  2. 运行 Install.bat 进行安装……
  3. 重启浏览器完成安装……
  4. 遇到中意的视频请点击鼠标右键选择 ‘FLV Downloader’ 选项即可使用本下载器进行下载……
  5. 注意:如果需要去掉右键插件,运行 uninstall.bat 即可卸载……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

已知问题

  • Google 视频由于国内 IP 被封锁…… 请需要使用代理来访问并下载…… 本程序仅提供地址分析……
  • Vlog 周末下载不稳定…… 怀疑采用其它算法加密视频地址……
  • 某些站点属于视频聚合类型…… 如果遇到错误…… 则可能因为其内嵌视频原始站台尚未被本工具支援……

各位测试如果发现问题……
或者有新的站点需要纳入其中……
或者有任何意见建议……
都可以留言在这里……

目录

  1. 最近更新
  2. 开发日志
  3. BookMarkLet 使用方法
  4. Maxthon 快捷搜索使用方法
  5. IE7 快捷搜索使用方法
  6. Maxthon 插件使用方法
  7. FireFox 扩展使用方法
  8. Opera 控件使用方法
  9. IE 右键插件使用方法
  10. 已知问题

好久没空来写点儿东西了……
今天给带来昨天刚完成的一款 Firefox 扩展……

习惯在 Firefox 里使用外部编辑器查看 HTML 源码……
然而它一直都存在这样一个 Bug ……(如图)

Encoding Bug with Source Viewing in Firefox

这个 Bug 在 Window 下所有版本的 Firefox 都存在……
原因十分简单……
Firefox 将源代码存到 windows 的 temp 文件夹后……
忘了给文件名转码……
此时源码文件的文件名是 non-unicode 编码的……
而在 Firefox 内部却是 unicode 的……
等你执行 View Page Source 命令后……
Firefox 将文件名作为参数发送给你所设置的外部编辑器……
编辑器当然找不到源码文件路径……
这也解释了为何我们可以用外部编辑器正常打开英文网站的源码……

实上在 Bugzilla 上是可以找到相关的 Bug 报告……
比如以下两个:
https://bugzilla.mozilla.org/show_bug.cgi?id=172817
https://bugzilla.mozilla.org/show_bug.cgi?id=408923

既然有 Bug 我们来修复就好了……
这就是我这个扩展的主要功能……
安装后它会修改与查看源码相关的相关函数……
把临时文件的文件名正确转码后才发送给你的编辑器……
这样就能正确打开了……(如图)

Encoding Bugfixes

最后有三点需要注意……
1. 该 Bug 仅当使用外部编辑器查看源码时存在……
如果你使用 Firefox 内部页查看源码……
请无视……
如果你想从现在开始使用外部编辑器来查看源码……
请将 view_source.editor.external 设为 true ……
并把外部编辑器的路径写到 view_source.editor.path ……

2. 本扩展目前仅适用于简体中文用户……
因为我还没找到从 Firefox 里获取用户 non-unicode 默认编码的方法……
在注册表中没有找到……
有线索的朋友可以留言告诉我哟……

3. 装本扩展仅能解决 Firefox 内置的查看源码的方法……
Firebug 的 Open with Editor (打开编辑器)功能虽然使用的自建方法……
(请看清:是右键和菜单栏下的一个功能组……)
但仍然会存在乱码问题……
不同的是用 Firebug 所提供的该功能打开源码看到的是内容乱码……
因为它根本就没有对网页内容进行转码(见其 editor.js 功能)……
有兴趣的朋友可以使用 converter-output-stream 组件的 nsIConverterOutputStream 接口来修复该问题……
至于 Firebug 为何在打开文件时不存在乱码问题……
原因很简单……
它的临时文件的文件名是一水儿的 ascii 字符……(笑)

由此引出三个 Todo……
1. 下个版本会在选项面板提供一个文件浏览控件……
方便你简单地设置外部编辑器路径……

2. 自动判断用户的 non-unicode 默认编码值……

3. 考虑解决 Firebug 的外部编辑器乱码 Bug 并提交给 Firebug 官方…… 但不确定人家要不要……

(已于 2008.10.15 解决,详见这篇日志

呵呵……
解决上面几个问题……
本扩展就迎来其 1.0 版本……

哦对了……
支持 2.0 - 3.0.* 的所有版本……
事实上在我的 3.2 beta pre 上也工作正常……

最后提供下载……

国外: http://www.quchao.com/projects/mozilla/firefox/extension/viewSourceInExternalEditorBugfixer.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/viewSourceInExternalEditorBugfixer.xpi

userChrome.js 计划中……
但将在解决自动判断编码的问题后提供……

[最近更新]

根据名为 Golf_CN 的网友所指出的错误……
将“单实例”的说法改为“单窗口”……
以防误导各位……

SingletonFox 是我新近编写的一款 Firefox 扩展……
目的非常单纯……
就是为了强制 Firefox 始终保持单实例状态运行……

依稀记得早在 1.5 时代……
Firefox 本身通过参数配置便可实现单实例运行的……
而 2.0 之后就消失掉了……
大家转向使用个 Tab Mix Plus (以下简称 TMP)来实现……
但 TMP 太过臃肿……
很多国内用户都用 Tab Mix Lite CE (以下简称 TML CE)……
遗憾的是 TML CE 并不提供类似功能……

有的同学可能认为自己没遇到过多实例 Firefox 的状态……
诚然……
你通过修改 Pref.js 的设置确实能在很多地方强制使用标签页浏览……
但你仍然可以通过其它各种途径“不经意间”开启多实例……
(TMP 扩展用户不在此列……)
比如按住 Shift 单击链接……
比如在链接的右键上下文菜单上选择“New Window”……
再比如直接重新开启一个新 Firefox 程序……
这时你会发现 Firefox 有多个实例……
并且共用一套 Session 系统……
开发团队的确用心良苦……
(注意要转折了……)
但是……
这个世界上终究有些人还是更愿意单实例运行的……
比如我……

于是……
在寻找可用方案无果的情况下……
我写了这个插件……
不知道 TMP 是如何实现的……
我的做法是在 Firefox 实例化时进行检查……
如果实例已存在便将新实例里的标签页全部移交给之前的那个……
然后关闭新实例……

然后……
强烈建议配合 TML CE 使用……
这下又多一个抛弃臃肿的 TMP 的理由了……

另外……
扩展我已经提交到 Mozilla 官方了……
照例还是在 SandBox 里……
有帐号且支持本扩展的同学可以帮忙评论一下……
这是它逃离 SandBox 的唯一途径……

今天就到这儿了……
有意见请留言……

[更新记录]

[08-07-18 ] 1.0: 初始发布
[08-07-25 ] 1.1: 禁用新建窗口功能并覆写相关设置
[08-07-30 ] 1.2: 将 Shift + Click 打开新窗口修改为打开新标签

提供扩展下载……

国外: http://www.quchao.com/projects/mozilla/firefox/extension/SingletonFox.xpi
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/extension/SingletonFox.xpi
官方: https://addons.mozilla.org/zh-CN/firefox/addon/8182

另为 userChrome.js 用户提供脚本版下载……
(实际上最初我就写的脚本版)
功能完全相同……

国外: http://www.quchao.com/projects/mozilla/firefox/userchrome_js/singletonFox.uc.js
国内: http://vip.yyjoy.com/chappell/mozilla/firefox/userchrome_js/singletonFox.uc.js

之前有同学报告说之前的天涯助手脚本失效了……
原来是天涯更新界面代码的缘故……
(很抱歉我并不很常去那里……)
仔细一检查才知道其增加了官方的“只看楼主”的功能……
只可惜未注册用户是无法享用的……

在某论坛得知了另一种启用“只看楼主”功能的方法……
也即通过 oTianYa.cn 来辅助实现……
oTianYa 的原理很简单……
用服务端文件去采集用户欲访问的帖子……
然后处理内容并过滤后显示……
与之前我编写的天涯助手脚本之间的区别……
无非在于它是服务端处理的第三方实现……
不过说实话……
目前在“高亮楼主”和“只看楼主”之间的切换动作会产生页面刷新……
(而天涯助手则不需要……)
当然啦……
作为一个网站……
追求 PV 是无可厚非的……
另一方面……
由于是第三方网站……
图片的“盗链”问题是存在的……
有兴趣的同志也可以安装 RefControl 来解决……
但脚本就没有此限制……

不管怎么说……
它不失为实现这些增强功能的另一种方法……
由于天涯助手的最新版本尚在编写中……
我先编写了本文中的“天涯助手 Lite”……
可以方便大家使用 oTianYa 提供的功能……
除了原先天涯助手所提供的“高亮楼主”和“只看楼主”之外……
还增加了简单的“广告过滤”功能……

浮动控制栏与原先的版本一样……
Lite 版也同时提供“猴子脚本命令”和“浮动控制栏”两种控制方式……
(最原始版所提供的快捷键功能已被移除……)
其中猴子脚本命令的操作方法是:
在猴子图标上点击右键并选择 User Script Commands……
选项有……
1.天涯助手 Lite - 隐藏浮栏/恢复
2.天涯助手 Lite - 只看楼主/恢复
3.天涯助手 Lite - 高亮楼主/恢复
(如下图)
猴子脚本命令

由于和之前的天涯助手功能和操作方法均差不多……
所以就介绍到这里……
有问题请留言……
感兴趣的朋友可以直接下载试用……
国外用户:http://www.QuChao.com/Projects/UserScripts/Tianya_Helper_Lite.user.js
国内用户:http://VIP.YYJoy.com/Chappell/UserScripts/Tianya_Helper_Lite.user.js
脚本官方http://UserScripts.org/Scripts/Source/29641.User.js

最后说点儿近期安排……
由于马上动身去杭州……
所以天涯助手的更新应该会延后……
而解决“隐性特殊链”的 SpeciLink 开发工作也会延后哦……