2015-02-09 53 views
2

我正在創建一個使用sdk的firefox插件,我想知道是否有任何方法來阻止「您想記住這個密碼嗎?」登錄到網站時由Firefox密碼管理器顯示的彈出窗口。我嘗試過「自動完成」屬性,但它看起來像firefox已停止支持它從版本30.它不應該顯示登錄到網站。請指教。Block「你想記住這個密碼嗎?」在Firefox中彈出

回答

0

添加popupshowing事件監聽器,如果它是密碼baloon的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瀏覽器窗口,您將需要遍歷所有導航器瀏覽器窗口,並且還要監聽並附加到新打開的導航器:瀏覽器窗口。

+0

我嘗試這樣做。但它返回「服務未定義」。所以我不得不用「Cc [」@ mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);「但我需要在我的內容文件中完成。所以,我不能要求Cc和Ci。 – Vickmaniac 2015-02-10 12:37:30

+0

內容腳本無法訪問任何提升/ SDK功能,因此無法直接在此處執行。如果您需要以編程方式決定根據頁面上發生的事情來抑制彈出窗口,則需要將消息發送回您的主擴展程序代碼並將其抑制。 – 2015-02-10 13:06:42

+0

我在附加到登錄頁面的內容中嘗試了「document.addEventListener(」popupshowing「,function(event){event.preventDefault();},false);」。 。但它不起作用。 。 event.stopPropagation()也不起作用。 – Vickmaniac 2015-02-10 14:45:52

1

分析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"/>