1

有一個網站隨機在其網站上顯示一些活動彈出窗口。如果在Firefox等網站上顯示彈出窗口時會通知用戶,這將非常有用。可以藉助JavaScript或任何附加軟件等方式進行操作嗎? 在此先感謝。在Firefox中彈出窗口並通知用戶

+0

您能否提供更多信息,例如彈出窗口如何顯示。我猜如果你使用任何插件例如Jquery UI插件,那麼你可以使用這些事件來通知用戶。 – dip 2014-12-03 12:20:48

+0

當刷新頁面時,彈出窗口隨機出現。我知道有一些插件刷新網頁瀏覽器。但是當瀏覽器選項卡上出現彈出窗口時,我需要得到通知或捕獲。謝謝。 – 2014-12-03 13:19:13

回答

1

有兩個選項。

nsIWindowWatcher - https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIWindowWatcher

nsiWindowMediator - https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWindowMediator

這是nsiwindowmediator方式:

/*start - windowlistener*/ 
var windowListener = { 
    onOpenWindow: function (aXULWindow) { 
     // Wait for the window to finish loading 
     let aDOMWindow = aXULWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowInternal || Ci.nsIDOMWindow); 
     aDOMWindow.addEventListener('load', function() { 
      aDOMWindow.removeEventListener('load', arguments.callee, false); 
      //window loaded, now the website will load so addeventlistener for that 
      //check what the website loading is here, if its your campain thing then block it 
     }, false); 
    }, 
    onCloseWindow: function (aXULWindow) {}, 
    onWindowTitleChange: function (aXULWindow, aNewTitle) {}, 
}; 
/*end - windowlistener*/ 

Services.wm.addListener(windowListener); 
//Services.wm.removeListener(windowListener); 

所以現在在onOpenWindow,你可以看到什麼是開窗器,如果是,網站,然後關閉該窗口。

+0

非常感謝您的回答和很好的解釋。然而,由於不知道哪條路要走,我無法應用此代碼。除此之外,沒有字段可以進入我聽的網站。你的意思是寫mozilla插件嗎?您能否請澄清我多一點或給這個解決方案演示?提前致謝。 – 2014-12-05 17:42:11

+0

這不可能嗎? – 2014-12-08 14:38:08

+1

是的,這是firefox-addon代碼。 Firefox有一個內置的彈出窗口攔截器,雖然這是一個好東西使用。 – Noitidart 2014-12-08 15:43:32

相關問題