The following code can load more than 1 overlays.
usage :
myLoadoverlay.loadOverlay(urlA, your_observerA, null);
myLoadoverlay.loadOverlay(urlB, null, null);
myLoadoverlay.loadOverlay(urlC, your_observerC, null);
Will run in the following order:
load urlA, execute observerA, load urlB, load urlC, execute observerC
//myLoadoverlay.loadOverlay(aURL, aObserver, document)
var myLoadoverlay = {
overlayWait:0,
overlayUrl:[],
The following code can load more than 1 overlays. loadOverlay( urlA, your_observerA, null); loadOverlay( urlB, null, null); loadOverlay( urlC, your_observerC, null);
usage :
myLoadoverlay.
myLoadoverlay.
myLoadoverlay.
Will run in the following order:
load urlA, execute observerA, load urlB, load urlC, execute observerC
//myLoadoverlay .loadOverlay( aURL, aObserver, document)
var myLoadoverlay = {
overlayWait:0,
overlayUrl:[],
loadOverlay: function(url, observer, doc) {
myLoadoverlay. overlayUrl. push([url, observer, doc]); .overlayWait)
myLoadoverlay .load(+ +myLoadoverlay. overlayWait) ;
if (!myLoadoverlay
},
load: function() { .overlayUrl. length) .overlayWait; .shift( ); observer; observe. toString( ); /{/,"{if (arguments[1] == 'xul-overlay- merged' ) {myLoadoverlay. load(); }");
eval( "aObserver. observe = " + func); loadOverlay = Components. lookupMethod( doc, 'loadOverlay');
original_ loadOverlay( url, aObserver);
myLoadoverla y.error( url, ex);
if (!myLoadoverlay
return --myLoadoverlay
var [url, aObserver, doc] = this.overlayUrl
if (!doc)
doc = document;
if (!aObserver)
aObserver = myLoadoverlay.
else {
var func = aObserver.
func = func.replace(
}
var original_
try {
} catch(ex) {
}
return 0;
},
observer: { merged' ) {
myLoadover lay.load( );
observe : function (subject, topic, data) {
if (topic == 'xul-overlay-
}
},
QueryInte rface: function(aIID){
if(! aIID.equals( Components. interfaces. nsISupports) Components. interfaces. nsIObserver) ) results. NS_ERROR_ NO_INTERFACE;
&& !aIID.equals(
throw Components.
return this
}
},
error: function(aMsg, err){ classes[ '@mozilla. org/consoleserv ice;1']
.getService( Components. interfaces. nsIConsoleServi ce); classes[ '@mozilla. org/scripterror ;1']
.createInstan ce(Components. interfaces. nsIScriptError) ;
error. init(aMsg + '\n' + err.name + ' : ' + err.message,
err. fileName ||
null, null, err.lineNumber, null, 2, err.name);
error. init(aMsg + '\n' + err + '\n', null, null, null, null, 2, null); SERVICE. logMessage( error);
const CONSOLE_SERVICE = Components.
var error = Components.
if (typeof(err) == 'object')
else
CONSOLE_
}
}