modified version of Erik's one to enable multiple load calls :
var OverlayLoader = { queue: [], loading: false,
add: function(url,id) { OverlayLoader.queue.push([url,id]); },
load: function() { if (OverlayLoader.queue.length == 0) return; if (!OverlayLoader.loading) { OverlayLoader.loading = true; document.loadOverlay(OverlayLoader.queue[0][0], null); } else { if (document.getElementById(OverlayLoader.queue[0][1]) != null) { OverlayLoader.loading = false; OverlayLoader.queue.shift(); if (OverlayLoader.queue.length == 0) return; } } setTimeout('OverlayLoader.load()', 100); } };
overlay_loader.add('chrome://example/content/main.xul','category_selector'); overlay_loader.load();
----
overlay_loader.add('chrome://example/content/book.xul','book_details'); overlay_loader.load();
usefull for us, when loading overlays in more than one extension at the same time.
modified version of Erik's one to enable multiple load calls :
var OverlayLoader = {
queue: [],
loading: false,
add: function(url,id) er.queue. push([url, id]);
{
OverlayLoad
},
load: function() queue.length == 0) return; .loading) ader.loading = true; loadOverlay( OverlayLoader. queue[0] [0], null); getElementById( OverlayLoader. queue[0] [1]) != null)
OverlayLoader. loading = false;
OverlayLoader. queue.shift( ); queue.length == 0) return; 'OverlayLoader. load()' , 100);
{
if (OverlayLoader.
if (!OverlayLoader
{
OverlayLo
document.
}
else
{
if (document.
{
if (OverlayLoader.
}
}
setTimeout(
}
};
overlay_ loader. add('chrome: //example/ content/ main.xul' ,'category_ selector' ); loader. load();
overlay_
----
overlay_ loader. add('chrome: //example/ content/ book.xul' ,'book_ details' ); loader. load();
overlay_
usefull for us, when loading overlays in more than one extension at the same time.