【发布时间】:2015-04-08 20:49:40
【问题描述】:
我正在使用 sdk 创建一个 firefox 插件,我想知道是否有任何方法可以阻止“您想记住这个密码吗?”登录网站时 Firefox 密码管理器显示的弹出窗口。我已经尝试过“自动完成”属性,但看起来 firefox 从版本 30 开始停止支持它。它在登录网站时不应该出现。请指教。
【问题讨论】:
标签: javascript html firefox firefox-addon firefox-addon-sdk
我正在使用 sdk 创建一个 firefox 插件,我想知道是否有任何方法可以阻止“您想记住这个密码吗?”登录网站时 Firefox 密码管理器显示的弹出窗口。我已经尝试过“自动完成”属性,但看起来 firefox 从版本 30 开始停止支持它。它在登录网站时不应该出现。请指教。
【问题讨论】:
标签: javascript html firefox firefox-addon firefox-addon-sdk
分析 FF 源代码后,我设法通过在表单中添加树形附加密码字段来修复它。 在那种情况下,FF 无法弄清楚要使用哪个密码字段:)
<input type="password" style="display: none;"/>
<input type="password" style="display: none;"/>
<input type="password" style="display: none;"/>
<input type="password" name="pass"/>
【讨论】:
添加popupshowing 事件监听器,如果它是密码气球的ID,则执行event.preventDefault(); event.stopPropagation() 以停止显示。
或者你可以专门针对气球,通过获取它的 id 然后像这样附加它:
例如:
var win = Services.wm.getMostRecentWindow('navigator:browser');
var PUI = win.document.getElementById('i dont know the id');
var previt = function(e) {
e.preventDefault();
}
PUI.addEventListener('popupshowing', previt, false);
此代码仅附加到最近的导航器浏览器窗口,您将需要遍历所有导航器浏览器窗口,并监听并附加到新打开的 navigator:browser 窗口。
【讨论】:
var {Cu, Ci, Cc} = require('chrome') 获得Services,然后在代码顶部执行Cu.import('resource://gre/modules/services.jsm'),然后您可以使用Services 模块