标签归档:firefox

Firefox更新同步系统

不知 Firefox 从多少版本后开始更换了新的同步系统,之所以一直没发觉是因为其还同时运行着两套版本,在没 unlink 之前将一直使用旧的而不做提示。直到在另一台电脑上安装了最新的版本想同步时才发现原来更新了,但是好奇怪,居然没做帐号转移,搞得需要重新注册。

同时,因为在 unlink 之前是不会提示新的入口的,然后我纳闷了好久,最后还是找了下官方的指引来看,最后下决心 unlink 了一下才搞明白。

  1. 把旧的机器上的 firefox 升级到最新。Ubuntu 仓库中的老旧,没办法,手动下载解压然后 ln 一下。
  2. 在 Sync 界面 unlink
  3. 然后在 unlink 后的新界面注册,邮件中激活后即可发现可管理帐号了,此时自动把现有数据同步到新系统中
  4. 别的设备上使用新帐号登录新平台即可

P.S. 此为水文,目的是在忙碌中保持至少月更。

小心Dom元素的name属性

对于一个用 JavaScript 获取到一个 DOM 节点的后,在说到属性的时候需要注意的是指 DOM 节点的属性还是 JavaScript 对象的属性(或说字段名)。一般来说,前者用 getAttribute/setAttribute 来访问/修改,后者用 object.field 来访问。然而,对于像 id、className 这些却属于 DOM 节点的 Attribute 范围。在说到 name 属性的时候,就更加复杂一点了,因为牵涉到 IE 的特殊处理。

当想用 setAttribute 给一个已有的(或动态创建的) DOM 元素设置 name 属性时,将会发现 IE6/7 跟 form 及相关表单元素合不来,根本就没有设置成功。

微软的文档,在 IE6/7 中,form 表单时的 name 属性是有些特殊的,用来标志提交的数据,跟平常的用途有些不一样。

var createNamedElement = function (type, name) {
    var element = null;
    // Try the IE way; this fails on standards-compliant browsers
    try {
        element = document.createElement('<'+type+' name="'+name+'">');
    } catch (e) {
    }
    if (!element || element.nodeName != type.toUpperCase()) {
        // Non-IE browser; use canonical method to create named element
        element = document.createElement(type);
        element.name = name;
    }
    return element;
};

// create an input element with name
var aInput = createNamedElement('input', 'aInp');

如果只是需要创建一个节点而不需要后续引用继续修改的话,我会更加倾向于直接用 innerHTML 来创建,比如:

someNode.innerHTML = someNode.innerHTML + '<input type="button" name="aButton" value="This is a button" />';

需要注意的是,对于 name 属性,在表单类中 attribute 和 field 是相同的,但在非表单中, attribute 中的才是 HTML 代码中可见的 name 属性。

See more demo


References:

  1. Weird behaviour of iframe `name` attribute set by jQuery in IE
  2. NAME Attribute | name Property
  3. Setting the “name” attribute in Internet Explorer

强制安装Firefox扩展

使用Firefox一般都会碰到这个问题,Firefox出新版本了,但扩展却没有更新,于是“附加组件”中一片飘红。

其实,一般来说,那些扩展都是可用的,只是还没标志为兼容新版本而已。

解决这个问题的方法也挺多的,比如扩展 Nightly Tester Tools,比如直接修改配置来禁用兼容性检查。

我习惯使用的是,直接修改扩展的版本范围来达到兼容的目的。方法也很简单,以下几个步骤而已,以 Firfox4 安装 firebug 为例:

  1. 将下载下来的 firebug 的 xpi 文件用 7-zip 等压缩/解压软件打开,提取出 install.rdf 文件。
  2. 用文本编辑器打开 install.rdf 文件,找到 minVersionmaxVersion ,修改其中的数值来保证当前浏览器版本位于其中,比如这里就将 maxVersion 的值改为4.0就可以了,如 <em:maxVersion>4.0</em:maxVersion>

然后重新将 install.rdf 放进 xpi 文件后再拖到 Firefox 中即可安装了。

P.S. 说到 Firefox4,很多人都会保留 3.6 版本,而尝鲜 4.0,这样就涉及到多版本共存的问题,关于这个,网上的教程也很多,我也记录过一篇《Firefox多版本共存》。

被杯具的Firefox

我XP下的Firefox杯具了,表现为一旦想下载文件或打开选项配置窗口(插件选项也如此),就彻底卡住了,唯有从任务管理器结束。

重新安装,彻底重新安装(删除配置文件),更换到4.0 beta都不行。

网上也没有找到什么解决方法,有人说是因为微软12号之后的补丁所致。有可能是,不过我是昨天才打的补丁,不过好像在昨天之前下载功能就坏掉了,所以不敢肯定是不是补丁的问题。

据说降级到3.5.11或更前可以,不过我就懒得降了,用Chrome去。偶尔转到ubuntu下,这边没事的说(写此文时在ubuntu下)。

Firefox Box-shadow & Outline bug

Firefox同时使用outline和boxshadow时会出现outline被shadow撑开的bug,Chrome、Opera不存在此问题。

如以下代码:

<style type="text/css">
    #ffbug{
        margin:30px auto;
        width:200px;
        height:200px;
        border:2px solid blue;
        outline:5px dotted green;
        box-shadow: 0 0 10px red;
        -moz-box-shadow: 0 0 10px red;
        -webkit-box-shadow: 0 0 10px red;           
    }
</style>
<div id="ffbug">
    蓝色为border<br />
    绿色为outline<br />
    红色为box-shadow<br /><br />
    Firefox会将box-shadow的宽度计算进width中,从而导致border变化,于是outline偏移。
</div>

继续阅读

Firefox多版本共存

关键词:配置文件

主要就是将不同版本的Firefox使用不同位置的配置文件,前提是不同版本Firefox安装在不同目录

先看一下以前写过的关于Windows和Ubutnu共享Firefox配置的一点文字

共享配置:
操作系统中Firefox配置文件所在的路径:
* Windows Vista:Users\<UserName>\AppData\Roaming\Mozilla\Firefox
* Windows XP/2000/2003:Documents and Settings\<UserName>\Application Data\Mozilla\Firefox
* Linux:~/.mozilla/firefox

windows下,在firefox快捷方式->属性->目标后面加上 -p,双击快捷方式启动,会运行配置管理器,设置好配置文件夹,确定。删掉-p,ok。(或:运行(Win+R)–输入firefox.exe -profilemanager,如果你的Firefox不是安装在默认目录下,这条命令应修改为firefox所在路径\firefox.exe -profilemanager.)
ubuntu下,在终端运行firefox  -ProfileManager,同样设置配置文件夹,设为跟windows同一个文件夹,确定,ok。

继续阅读

Lingoes打败IE

首先看一张图:

ie-yahoo

请认真观察上图,右下方那个是Lingoes,其显示着“123”,Lucky,那正是密码框里的内容!

Oh,多好的一件事啊!以后要是忘记了密码,可以这样来取回密码。只是,你能别人也能而已!

OK,YaHoo可以,先看看别的网站如何?

qq邮箱可以

继续阅读