Dev : Extensions : Example Code: Difference between revisions

From MozillaZine Knowledge Base
Jump to navigationJump to search
No edit summary
(mediawiki doesn't handle redirects to category pages well, which is why I didn't use it here. reverting)
 
(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]]

Latest revision as of 15:04, 7 October 2005

This page has been moved to Category:Example code. Please update your bookmarks.