2009-03
16

GreaseMonkey这个插件大家都早已熟悉了。最近我遇到一个问题:需要让页面在调用完某个函数之后自动执行我的函数。 其实这个并不难,写个函数替换原有的函数即可:

function hook() {
  var f = unsafeWindow.foo;         // 保存旧函数
  unsafeWindow.foo = function() {   // 定义新函数
    alert("Hello!");                // 先执行我们的处理
    f();                            // 再执行旧函数
  }
}

然后加载到页面上:

setTimeout(hook, 1000);

这样,页面再执行foo函数时,就会先执行我们的alert("Hello!")了。

不过这个函数还有很大的问题。比如,原有函数的参数不能正确传给foo,返回值无法取出来,无法应用到对象中的方法,通用性不好等。 下面来一个个解决。

阅读全文 »
2008-09
17

Firefox的工具菜单中有个非常有用的功能:清除隐私数据,快捷键是Ctrl-Shift-Del。 经常做Web开发的人对这个功能一定非常熟悉,修改完一点代码看看效果时,都需要 Ctrl-Shift-Del然后按回车。

不过这个功能有个很郁闷的地方。Firefox 2中,默认是不清除网站登录信息的, 比如你登录了Gmail并选择下次无需输入密码,在Firefox 2中直接按Ctrl-Shift-Del再回车, 是不会清除Gmail上记忆的密码的。但是在Firefox 3中添加了一个很讨厌的选项, 清除“已通过验证的会话”,而且是默认选中的,这样直接Ctrl-Shift-Del再回车, Gmail上记住的密码也就没有了,下次进入Gmail还得再点一次登录。

幸好,通过about:config可以修改清除隐私数据对话框的默认值。 在地址栏中输入about:config,然后查找 privacy.item, 把 privacy.item.sessions 改为false就可以了。 这样再按 Ctrl-Shift-Del,“已通过验证的会话”选项就是默认不选中了。


2008-06
18

最近Firefox的行为很奇怪,出现了许多以前一直没见过的现象。回想一下似乎是升级了delicious bookmarks 2.0.58版导致的。

目前发现的问题如下:

  • 历史菜单内的前进、后退按钮失效,工具栏的前进、后退、刷新按钮失效,右键菜单中相应菜单也失效,但用快捷键和鼠标手势可以正常浏览;
  • 不论访问什么网页,地址栏总是显示第一次手工输入的地址,而不会随着当前页面的变化而更新;
  • Ctrl-Tab切换Tab时,松手后屏幕中间显示的切换菜单不会自动消失;
  • 按一下Ctrl-Tab无法在所有Tab中依次切换,只能在当前Tab和上一个Tab之间切换;
  • Ctrl-PageUp和Ctrl-PageDown的功能会反过来,即Ctrl-PageUp变成“下一个Tab”,而Ctrl-PageDown变成“上一个Tab”。

这些现象在禁用delicious bookmarks后消失。但delicious bookmarks又不能不用,于是卸载之后从官方插件站点上重新安装了一次,目前还未发生上述问题。

2008-6-20更新:

今天delicious bookmarks 2.0.64版发布了,更新内容包括:

This release fixes several issues with FF2 and FF3 GA.

  • Fixes for "Organize Bookmarks" performance on FF3
  • Fixes for strange tab behavior in FF2
  • Fixes for sync issues on startup and login
  • Removing status bar icons now frees up space on the status bar
  • Classic mode has been simplified to remove the Delicious menu and work via bookmarklet interface
  • Cleaned up Delicious Bookmarks Options UI

其中第二条就是解决标签切换行为异常的。


2007-06
16

这篇文章分析了Firefox插件对浏览速度的影响。我个人也一直很奇怪 为什么我的Firefox打开新窗口时速度要比别人慢很多,后来发现 是自己装了很多插件的原因。原文在这里

大部分Web程序开发者都喜欢Firefox,首要原因是因为它有丰富的插件, 像All-in-One Gestures、User Agent Switcher、Firebug、Greasemonkey、 WebDeveloper、ScrapBook等。

但是随着插件的增加,启动时间、页面显示时间也会变慢,其首要原因 就是插件,特别是部分插件会严重影响浏览速度。

那么,究竟是哪些插件影响了速度?能否通过数字进行比较? 这里给出了显示时间的测试结果。

阅读全文 »
2007-01
24

或许很多人已经知道这个插件了吧,Tab Effect。它能让你的Firefox在切换标签时使用类似于Linux下的Compiz的3D效果。看看下面的截图。

tab-effect.png

装上以后感觉原来的设置切换速度有点慢,打开插件目录下 content/javascript.js,寻找这一段代码:

if(TabEffect.currentTab != gBrowser.selectedTab){
    var back = currentTabIndex > gBrowser.mTabContainer.selectedIndex || currentTabIndex == -1;
    TabEffect.xpcomObj.translateToNextTab(back, 24);
    TabEffect.currentTab = gBrowser.selectedTab;
}

将 translateToNextTab(back, 24)中的24改成12,重新启动Firefox,可以看到旋转速度快了许多。不过在切换页面时有明显的延迟,使这个插件减色不少。不过总的来说,这个插件还是值得推荐的,它带来了插件开发的一个新思路。

该最新版本为1.1,仅有Windows版,需要DirectX 8支持。

ps. 如何找到插件目录?我使用的是Mr Tech Local Install,安装该插件之后,在插件管理面板上选中想要查看的插件点右键,选择浏览安装目录就可以了。要是没有安装该插件,那就在 C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\nnnnnn.default\extensions 目录下一个个找吧。


2006-12
07

Firebug开发小组终于发布了激动人心的Firebug 1.0 Beta版。 与当初的Firebug 0.4版相比,这次的正式发布版已经不仅仅是简单的Javascript控制台, 而是集控制台、调试器、DOM查看/编辑器、网络监视器于一身的强大调试工具。 而使用者也不再限于Javascript开发者,内置的Box模型查看功能让网页设计师也受益匪浅。 下面我们来看看它的新功能吧。

阅读全文 »
2006-11
08

Firefox 拥有强大的插件功能是众所周知的,而面对众多琳琅满目的插件, 初学者往往不知道应该如何选择。这里show一下我常用的 Firefox 插件, 一来是给大家提供一点参考,二来是做个备份,重装系统时不必再逐个查找了。

阅读全文 »
2006-11
07

今天在调试程序时发现一个很奇怪的错误,查到最后发现原来是 Firefox 的一个bug。 window.open 打开的页面中,通过 prototype 定义的属性不会被对象所继承。 最明显的例子就是 Function.prototype(我也只测试了这一个), 通过 window.open 打开的页面中的函数不能继承 Function.prototype 定义的属性。

阅读全文 »
2005-03
01

在Firefox的地址栏里面输入 about:config,即可进入Firefox的详细设置页面,在这里可以修改许许多多隐藏的参数。

Thunderbird也有这个页面,不过不能直接访问。首先在下面这个URL上安装AboutConfig插件: http://extensionroom.mozdev.org/list.php/Thunderbird/config#aboutconfig 安装之后重新启动Thunderbird,即可在Tools菜单中找到about:config项,使用它即可进入详细设置页了。