写了一个Firefox的扩展
实在受不了GFW的横行霸道。凭什么要把Wikipedia、Google Cache这些站点封了呢?现在就连上这个Blog都得用代理了,哎……于是,我在ErrorZilla Mod的基础上加上了对失败地址使用Web代理进行访问的功能。
插件名叫ErrorZilla Plus。下载安装后,每次遇到无法打开的地址,一个新的失败页面就显示出来。和ErrorZilla Mod不同的是,现在多了一个"Proxify"的按钮,其下增加了一个列表框。列表框里保存了几个Web代理的名字。用户可以在这几个代理中选择一个,用它对失败的页面进行访问。这样,每次打开维基中文出错后,只需要点一下Proxify就可以访问了。
目前初版是0.3版。在这个版本里,我是把代理列表直接保存在netError.xhtml里的,因为我实在找不到如何在Firefox里读取外部文件的方法,即使是XML也不行。还要请高手指点一下。
如果要修改代理的列表,请打开ErrorZilla Plus安装的目录(<当前profile目录>/extensions/{03651b2d-eb7d-4be7-af1b-dc0cd162dd54}),找到Content文件夹下的netError.xhtml。在该文件中部有一段
ErrorZilla Plus的下载地址是https://addons.mozilla.org/en-US/firefox/addon/5398,目前还在沙盒(Sandbox)中。
--------------------
又查了一些资料。Mozilla在扩展的Javascript里有执行权限的限制。向about:这样的地址的权限较低,因此无法调用外部文件。我试了一下XPCOM组件,直接打开about:neterror时,执行Components.class会提示“Uncaught exception: Permission denied to get property UnnamedClass.class”,而通过Chrome(打开chrome://errorzillaplus/content/neterror.xhtml)则没有问题。我想这个问题暂时没法解决,除非Mozilla修改它的权限策略。
没有评论:
发表评论