解决 Firefox(火狐)不能保存密码问题

by noz

Firefox_remember_passwords

在《Firefox 实用小众扩展、脚本及小书签推荐(1)》一文中介绍了 Secure Login 这个扩展,可以很方便地进行网站登录功能。然而,这一切的基础是 Firefox(火狐)能保存(记住)此网站的密码。但实际上,我们有时会遇到 Firefox 不能记住密码的情况:输入用户名和密码点击登录,Firefox 不会弹出“记住密码”的提示框。这个问题产生和输入框的 autocomplete 属性的设置有关,当其为“on”时,Firefox 才会记住密码。本文将介绍解决这个问题的两个方法。

网页修改法

原理:将不能保存密码的网页中密码输入框的 autocomplete 属性设置为“on”。

人人网登陆界面为例:

1 在密码输入框上点击右键,单击菜单中的查看元素按钮,窗口下方出现“元素查看器”,其中包含当前元素的 HTML 代码。

inspect element

审查密码框元素

2 在“元素查看器”中找到<input id="password" name="password" error="请输入密码" tabindex="2" autocomplete="off" type="password">标签,将鼠标移到 autocomplete 上,双击,输入“on”,回车即可。

off_to_on

修改 autocomplete 属性

3 此时,按键盘Esc键回到网页,输入用户名和密码,点击登录,Firefox 便会提示是否记住密码。

remember_password_success

Firefox 提示记住密码

说明:在某些没有 autocomplete 属性的密码框可自行添加 autocomplete ="on" 属性;autocomplete 属性改变后不要刷新页面。

Firefox 程序修改法

原理:修改 Firefox 程序,使其在发现 autocomplete 属性不为“on”时也可保存密码。

1 到你的 Firefox 安装目录下找到 Omni.ja 文件(路径如C:\Program Files\Mozilla Firefox\omni.ja),使用解压软件(如 WinRAR/WinZip 等)打开。

2 双击 components 文件夹进入,找到 nsLoginManager.js 文件,双击打开。

3 在文本编辑器中,搜索_isAutoCompleteDisabled,可以找到如下代码段:

1
2
3
4
5
6
7
8
9
10
11
12
13
/*
* _isAutoCompleteDisabled
*
* Returns true if the page requests autocomplete be disabled for the
* specified form input.
*/

_isAutocompleteDisabled : function (element) {
if (element && element.hasAttribute("autocomplete") &&
element.getAttribute("autocomplete").toLowerCase() == "off")
return true;

return false;
},

4 将倒数第三行中的return true;改为return false;保存文件进入原压缩包。重启 Firefox 生效。