Ci sono più risposte nel post this SO. Sfortunatamente non riesco a trovare una soluzione "reale", ma altre persone stanno sostituendo la sovrapposizione di pagine CSS (# fancybox-overlay) per includere uno spinner. Poi, quando alla fine la pagina iframe viene caricata, viene posizionata sopra lo spinner.
EDIT:
ho rinunciato a utilizzare fancybox per gestire il caricamento delle immagini e ho pensato di condividere la mia soluzione. Ho aggiunto un carico posizionato in modo assoluto gif
della mia alla pagina, mostro appena prima di chiamare fancybox e posso catturare l'evento carico iframe con JQuery per nascondere il filatore, in questo modo:
$("#progressIcon").show();
$.fancybox.open({ type: "iframe", minWidth: 990, minHeight: 690, href: URL, title: "Basket" });
$("iframe").load(function()
{
$("#progressIcon").hide();
});
se non sei chiamando fancybox manualmente come me, presumo che potrebbe facilmente collegare questo codice attraverso un evento click, vale a dire:
$('.fancybox').fancybox();
$('.fancybox').click(/* ... */);
ho anche notato durante la riproduzione nella sorgente fancybox (v2.0.6) che sembra come fancybox usa l'evento load per mostrare/nascondere l'animazione di caricamento se autoSize è usato con un iFrame, anche se non ho testato la teoria.
if (type === 'iframe' && current.autoSize) {
F.showLoading();
F._setDimension();
F.inner.css('overflow', current.scrolling);
content.bind({
onCancel : function() {
$(this).unbind();
F._afterZoomOut();
},
load : function() {
F.hideLoading();
try {
if (this.contentWindow.document.location) {
F.current.height = $(this).contents().find('body').height();
}
} catch (e) {
F.current.autoSize = false;
}
F[ F.isOpen ? '_afterZoomIn' : '_beforeShow']();
}
}).appendTo(F.inner);
} else {
F.inner.append(content);
F._beforeShow();
}
fonte
2012-08-15 12:45:06
Ho provato a fare questo. Ho notato che non viene visualizzato nulla finché l'intero iframe non ha completato il caricamento completo. Questo NON succede con le pagine normali. Se si inseriscono pagine che normalmente dispongono di una barra di caricamento, queste non vengono visualizzate fino al completamento del caricamento; rendendo questa barra inutile. – WhyNotHugo