|
|
(38 intermediate revisions by 7 users not shown) |
Line 1: |
Line 1: |
| ==Preferences==
| | :''This page has been moved to [[:Category:Example code]]. Please update your bookmarks.'' |
| [http://xulplanet.com XulPlanet] has an [http://www.xulplanet.com/tutorials/xulqa/q_prefs.html article] on preferences
| |
|
| |
|
| ==Progress Listeners==
| | [[Category:Obsolete]] |
| Progress Listeners alllow extensions to be notified of events assosiated with documents loading in the browser and with tab switching events. Progress Listeners implement the [http://www.xulplanet.com/references/xpcomref/ifaces/nsIWebProgressListener.html nsIWebProgressListener] interface.
| |
| # Create an object which implements nsIWebProgressListener:
| |
| const STATE_START = Components.interfaces.nsIWebProgressListener.STATE_START;
| |
| const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP;
| |
| var myListener =
| |
| {
| |
| QueryInterface : function(aIID)
| |
| {
| |
| if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
| |
| aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
| |
| aIID.equals(Components.interfaces.nsISupports))
| |
| return this;
| |
| throw Components.results.NS_NOINTERFACE;
| |
| },
| |
| onStateChange:function(aProgress,aRequest,aFlag,aStatus)
| |
| {
| |
| if(aFlag & STATE_START)
| |
| {
| |
| //This fires when the load event is initiated
| |
| }
| |
| if(aFlag & STATE_STOP)
| |
| {
| |
| //This fires when the load finishes
| |
| }
| |
| return 0;
| |
| },
| |
| onLocationChange:function(aProgress webProgress , aRequest, aURI)
| |
| {
| |
| //This fires when the location bar changes i.e load event is confirmed or when the user switches tabs
| |
| //return 0;
| |
| },
| |
| //For defnitiions of the remaining functions see XulPlanet
| |
| onProgressChange:function(a,b,c,d,e,f){},
| |
| onStatusChange:function(a,b,c,d){},
| |
| onSecurityChange:function(a,b,c){},
| |
| onLinkIconAvailable:function(a){}
| |
| }
| |
| # Attach the progressListener to a <browser> object, e.g. for firefox:
| |
| const NOTIFY_STATE_DOCUMENT = Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT;
| |
| window.getBrowser().addProgressListener(myListener , NOTIFY_STATE_DOCUMENT);
| |
| The second argument is a [http://www.xulplanet.com/references/xpcomref/comps/c_appshellcomponentbrowserstatusfilter1.html status filter] which determines the type of events that will be recieved.
| |
| | |
| ==Other==
| |
| [[Dev : Extensions : Example Code : Adding items to menus]] | |