存档

文章标签 ‘firefox’

Firefox更新了一把

2009年10月18日 1 条评论
标签: ,

Firefox 当中HTML控件无法正常显示

2008年10月3日 没有评论

今天照常上网的时候,突然发现自己的Google主页上面的所有按钮上面的文字都消失了,所有的单选按钮也都消失了。
变成了这样:

Firefox Render HTML Control Bug

这个问题最后得以解决,解决方案如下:
首先,在地址栏输入about:config,然后找到nglayout.debug.enable_xbl_forms这个配置项,如果它是true的话,把它改成false。重新启动Firefox即可。

======我是无聊的分割线======

如果你的兴趣仅限于解决这个问题,下面的查错过程请无视。

这当然是非常不爽的一件事情,于是我开始回忆在上次显示尚且完好之后我做了什么操作,但是实在想不起来上次完好是什么时候的事情了——我上网一般都是在Google Reader上面徘徊,而Google Reader上面确实没有什么显眼的HTML标准控件可以让我发现这个问题。

于是没有办法,只好开始手动排错。在重新启动Firefox,重新启动Windows,用IE访问Google主页三步之后,基本可以排除系统原因或者Google的网页本身的原因。接下来看看是不是插件的问题,那么就先从“安全模式”开始看看问题是否能够解决。于是打开Firefox在开始菜单当中的安全模式,然后把“禁用所有扩展”打勾,重新访问Google,问题依旧,因此也不是插件的问题。那么是Firefox本身程序的问题么?为了考察这个,我新建一个Profile:在命令行中输入<path_to_firefox>\firefox.exe -P,注意P需要大写,然后再弹出对话框当中选择新建配置文件之类,完成之后用这个新的配置文件启动,然后访问Google,没有问题。因此看起来问题仍然在Profile本身。

Profile当中既然不是插件的问题,那么很可能就是首选项的问题了。我们知道在每个Profile目录下面有一个prefs.js的文件,是Firefox在当前情况下的所有的首选项的值,也就是在about:config里面看到的东西。最简单的就是比较两个Profile当中的prefs.js文件。在经过了大约半个小时,尝试过数十个不同的首选项之后,发现了nglayout.debug.enable_xbl_forms这个罪魁祸首。

然后用这个key的名字来搜索,发现其实这个是从Mozilla 1.3就开始有的问题,最早可以追溯到2002年12月:

XBL-based form controls are broken and
unusable in 1.3 and trunk builds.
(bug 185612)
If HTML form controls are not appearing and functioning on HTML pages,
check ‘prefs.js’ for the line ‘user_pref("nglayout.debug.enable_xbl_forms", true);’.
NOTE: this will only affect you if you had previously set this preference
in the ‘Debug’ panel in a previous build of mozilla. Casual users should
never change any of these settings.

这个至今未关的Bug (185612)就是在讨论我遇到的这个问题。

事情还没有结束。

在我没有修改这个键值的情况下,是谁动了我的Firefox键值?

在仔细回顾了这个问题之前一天我所做的事情之后,发现嫌疑最大的是插件 XPCOMViewer 版本0.9a。在新建的Profile上面尝试,发现一旦打开XPCOMViewer的主窗口,这个键立即就被改变成了true。也许是作者为了绕过某个难解的bug吧。之后查阅XPCOMViewer网站,发现作者公布的最新开发版1.0a当中已经修复了这个问题,也许我应该给作者发一封信告诉他应该更新一下Mozilla网站上面的版本了。

最后要澄清一下,虽然0.9a有这样的问题,但是作为一个仍然在sandbox当中的项目,这个扩展已经做得相当的好用。根据作者最近的一篇文章当中所说,1.0a版本支持一个非常cool的特性:直接将一个XPCOM组件导出成为Javascript/C++/Python的代码。对于有意在Firefox平台上面做点事情的朋友,这个扩展值得推荐。

标签: ,

TabIMSwitch 成为Mozilla Addons网站上的正式插件!

2008年9月27日 1 条评论

昨天收到了Mozilla Addons发来的邮件,经过漫长的等待,TabIMSwitch已经成为了Mozilla Addons大家庭的正式一员。
现在你可以登录Mozilla Addons上的页面来下载最新版本了。

https://addons.mozilla.org/addon/5413


5413将是你的终生代号 :b

说起来为什么Mozilla要寄T恤

2008年6月22日 4 条评论

既然有人问,我就再把以前Mozilla发给我的信重新贴一下。其实就是以前写过的一个小插件,在Firefox 3.0 Beta1出来的时候,在第一时间跑了一遍回归测试发现没问题就把Firefox的支持版本改成了3.0b1而已,也没做什么太多的工作。

Dear Add-on Developer,

Thank you and congratulations for updating your add-on with Firefox 3!
Since you have already updated your add-on to the latest Firefox 3
beta, it is time to claim your Mozilla Add-ons Developer T-shirt. If
you would like to receive the shirt, please fill out the following form
by March 18th:

 https://addons.mozilla.org/en-US/firefox/developers/tshirtrequest

Additionally, if your add-on is one of the top 50 most used add-ons by
Firefox 3 users on the Firefox 3 release day, Mozilla will offer to
sponsor a party (for an amount Mozilla will determine) for you and your
friends. That is, Mozilla will chip in for you and your friends to
celebrate your tools success! Mozilla will be in contact with the top
add-ons shortly after the Firefox 3 release.

Thank you for keeping your extension up to date as we get close to the Firefox 3 release!

Regards,

-Add-ons Admins

上两张pp。知道我的size的,可以估计出来这个衣服有多大了。

正面:

背面:

最后再作个广告,虽然Firefox 3发布了,但是让每个标签页具有自己的输入法状态的功能还是没有加上。所以,大家继续用TabIMSwitch吧。 :)

标签: ,

Mozilla T恤

2008年6月19日 3 条评论

今天下午公司的保安拿着一包东西到我那里问我是不是我的邮件,上书T恤,发件地是美国山景城。原来T恤寄到了,终于寄到了……

打开看了一下,发现犯了一个严重的错误:我忘了Mozilla是在美国的公司,所以T恤也是按照美国尺码来的,然后我却按照中国T恤的尺码来定的,一件XL,打开发现如同一件巨大的睡衣,老美的size真的很大很大……

Anyway,衣服还不错。

Made in Nicaragua.

标签: ,

修正VeryCD在启用AdBlock Plus的情况下的版面混乱问题的脚本

2008年3月2日 2 条评论

VeryCD是个不错的网站,除了在每个页面上面出现的flash广告(见下图)。当然我也知道VeryCD维持生存基本上要靠广告,但是经常搞死我浏览器的flash广告,我是不得已把它过滤掉的。

Firefox对于广告的解决方案当然是AdBlock Plus。这个插件可以按照通配符或者正则表达式来封锁广告。如果你不懂通配符或者正则表达式,直接用鼠标点点基本上也是可以解决问题的。通过在其中添加一条规则封锁 http://222.37.134.*/*.htm*,顺利达到了封锁VeryCD上面的flash广告的目的。

但是随之而来的问题是,因为过滤掉了一个iframe,整个页面布局就有了一些问题,资源详细信息因为布局的缘故无法显示(见下图)。

为了能够让它显示出来,只好另外再打一层补丁。这次用Greasemonkey,让它在加载VeryCD页面的时候在原本显示广告的地方显示另外一个东西来占个位置,自然就能够让详细信息部分显示了。

在这里显示什么呢?看了几个VeryCD页面之后,发现大多数的页面上面在简介部分都有至少一幅图片。按理说把第一副图片按比例缩小放在其中应该可以吧。最后结果见下图:

最后贴Greasemonkey脚本的代码。请将其拷贝到记事本保存为“所有文件”,文件名选择.user.js结束。保存后拖动到Firefox(事先需要安装了Greasemonkey),确定即可安装。

== 代码开始,请不要拷贝这一行 ==
// ==UserScript==
// @name           Re-format VeryCD item detail
// @namespace      http://ftofficer.spaces.live.com
// @description    Re-format VeryCD item detail
// @include        http://www.verycd.com/topics/*
// ==/UserScript==

function findFirstImg() {
  var paras = document.getElementsByTagName(‘p’);
  for (var i=0; i<paras.length; ++i) {
    var p = paras[i];
    if ( p.getAttribute(‘class’) == ‘inner_content’) {
      var imgs = p.getElementsByTagName(‘img’);
      if ( imgs && imgs.length > 0 )
        return imgs[0];
    }
  }
 
  return null;
}

function getScale(imgWidth, imgHeight, divWidth, divHeight) {
  var wScale = divWidth * 1. / imgWidth;
  var hScale = divHeight * 1. / imgHeight;
 
  if ( wScale > 1. && hScale > 1. ) {
    return 1.;
  }
 
  return wScale < hScale ? wScale : hScale;
}

function fixupVeryCDDetailPage() {
  var moreInfo = document.getElementById(‘moreInfo’);
  if ( moreInfo ) {
    var frame = document.createElement(‘div’);
    frame.setAttribute(‘class’, ‘Banner1’);
    frame.width = 300;
    frame.height = 250;

    firstImg = findFirstImg();
    if ( firstImg ) {
      var img = document.createElement(‘img’);
      img.src = firstImg.src;
      var imgScale = getScale(img.width, img.height, frame.width, frame.height);
      img.width = Math.floor(img.width * imgScale);
      img.height = Math.floor(img.height * imgScale);
      frame.appendChild(img);
    }
   
    if ( moreInfo.parentNode ) {
      moreInfo.parentNode.insertBefore(frame, moreInfo);
    }
  }
}

fixupVeryCDDetailPage();

== 代码结束,请不要拷贝这一行 ==

T-shirt from Mozilla

2008年3月1日 没有评论

From: extensions-developers@mozilla.org
To: [ hidden ]
Date: Fri, Feb 29, 2008 at 2:56 AM
Subject: Mozilla Add-ons Shirt for Firefox 3 Add-ons developers

Dear Add-on Developer,

Thank you and congratulations for updating your add-on with Firefox 3!
Since you have already updated your add-on to the latest Firefox 3
beta, it is time to claim your Mozilla Add-ons Developer T-shirt. If
you would like to receive the shirt, please fill out the following form
by March 18th:

 https://addons.mozilla.org/en-US/firefox/developers/tshirtrequest

Additionally, if your add-on is one of the top 50 most used add-ons by
Firefox 3 users on the Firefox 3 release day, Mozilla will offer to
sponsor a party (for an amount Mozilla will determine) for you and your
friends. That is, Mozilla will chip in for you and your friends to
celebrate your tools success! Mozilla will be in contact with the top
add-ons shortly after the Firefox 3 release.

Thank you for keeping your extension up to date as we get close to the Firefox 3 release!

Regards,

-Add-ons Admins

可惜没有图样预览。

标签: ,

Mozilla Addons网站中文版

2008年2月7日 没有评论

https://addons.mozilla.org/zh-CN/firefox/

算是个新年礼物吧。

更新了一下TabIMSwitch的注释,如果你使用中文察看,应该可以看到简体中文的介绍了。

标签: ,

TabIMSwitch 开始支持 Firefox 3.0 Beta – 请手动下载更新

2007年12月23日 1 条评论

今天收到Mozilla发过来的邮件,希望我们可以把自己的扩展升级到支持Firefox 3.0。本来在Beta 1出来的时候就打算做的,一直没动手,今天既然收到了信,就花了一天的时间调整了一下TabIMSwitch,小小的改动了一下,目前已经兼容于Firefox 3.0 Beta了。

新版本号码 1.1.0.41。

下载TabIMSwitch 1.1.0.41
SHA1校验码:0f0acbdd7df6ddd712541d5e766fb0ce9f07a56d
MD5 校验码:fe421b0905dbae7e59bbb3d028ad311f

但是因为现在最广泛使用的1.1.0.37版本的一个bug,自动更新到1.1.0.41基本上是不可能的,因为1.1.0.37版本当中根本就不包含自动更新URL。造成这个问题的原因是在编译的时候把放在Mozilla addons上面的版本公开在Google Code上面的版本弄混了,而Mozilla的版本是不能有自动更新URL的——Mozilla会给你加上一个。

所以,麻烦大家自己手动下载下来升级吧。

为了防止以后出现类似的问题,这次把编译脚本修改了,把Mozilla addon上面的版本和Google Code上面的版本完全分开,将来应该不会出现类似的问题了。

— 更新@2007-12-23 3:08 —
发完blog之后两分钟,发现1.1.0.40的包有问题,版本号忘了改了,还是1.1.0.39,忙中出乱啊,晕啊晕。
下载了1.1.0.40的,等自动更新到1.1.0.41吧。

解决在Firefox下面Live Space“发布日志”按钮被禁用的问题

2007年11月7日 18 条评论

也许你发现了上面的帖子。
这个帖子是我在进行测试,看看能不能启用Live Space的“发布日志”按钮。
事实上是成功了,特将其分享给大家。

首先,你需要安装Firefox扩展 greasemonkey。这个扩展可以使你在加载一个页面的时候执行一段你自己的Javascript程序。

安装之后,将下面的程序拷贝到一个文本文件,并把扩展名改成 .user.js。(务必是.user.js,否则greasemonkey无法自动安装之)。

===脚本开始,拷贝时请不要包含这一行===
// ==UserScript==
// @name           Enable Live Space Post Button
// @namespace      http://ftofficer.spaces.live.com
// @description    Enable Live Space Post Button
// @include        http://*.spaces.live.com/*
// ==/UserScript==

function LiveSpace_enableButton(id) {
  var button = document.getElementById(id);
  if ( button ) {
    var cls = button.getAttribute("class");
    var clsNameEnd = cls.indexOf("spDisabled");
    if ( clsNameEnd != -1 ) {
      clsNameEnd–;   // skip " " before spDisabled
      var newCls = cls.substring(0, clsNameEnd);
     
      button.setAttribute("class", newCls);
      button.setAttribute("mi:state", "enabled");

      var aNode = document.createElement("a");
      aNode.id = id;
      aNode.href = "#";
    }
  }
}

LiveSpace_enableButton("actionToolbarBlogPost");
LiveSpace_enableButton("actionToolbarSave");

===脚本结束,拷贝时请不要包含这一行===

然后将这个js文件拖放到Firefox窗口中,greasemonkey会弹出对话框询问是否安装,选择是,即可完成安装。

然后,去Live Space的“添加日志”当中看看吧。

如果看到“发布日志”和“保存为草稿”仍然没有启用的话,请看看greasemonkey当中配置的网直通配符是不是和你的网址一致,自己改改看看。在不行可以在这里回复。