This is great! Could you possibly show me an example of this online?
On Mar 7, 12:12 pm, "Jeffrey Kretz" <[EMAIL PROTECTED]> wrote:
> This may be out of left field from what you're asking but I wrote a script
> called "onImagesLoaded", with a tolerance setting. I used this to fire the
> jquery.flash.js script only after most of the images had been downloaded.
>
> Some sites I've coded were overly image-heavy with the Flash at the top of
> the page, so it would tend to make an ugly user-experience. If they're of
> any value to you, here they are:
>
> // Fire a specific event once all images are loaded.
> function onImagesLoaded(fn,tolerance)
> {
> // Ensure we have a valid function.
> if (!$.isFunction(fn)) return;
>
> var images = $('img').filter(function(el,i) { return !this.complete; });
>
> if (images.length)
> {
> window.$loadedImageCount = images.length;
> window.$imagesLoadedTolerance = $.toInt(tolerance);
> if (!window.$onImagesLoaded) window.$onImagesLoaded = [];
> window.$onImagesLoaded.push(fn);
> images.one('load',imageHasLoaded);
> }
> else
> fn();
>
> }
>
> // Each time an image is loaded, check to see if we can fire the event.
> function imageHasLoaded(e)
> {
> // Ensure we still have functions to execute.
> if (!window.$onImagesLoaded) return;
>
> // Reduce the number of images left.
> try { window.$loadedImageCount--; } catch(ex) {}
>
> // If we've reached 0 or the tolerance, fire the events.
> if ((window.$loadedImageCount||0) <= (window.$imagesLoadedTolerance||0))
> {
> for (var i=0;i<window.$onImagesLoaded.length;i++)
> {
> if ($.isFunction(window.$onImagesLoaded[i]))
> window.$onImagesLoaded[i]();
> }
> window.$onImagesLoaded = null;
> }
>
> }
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On
>
> Behalf Of Karl Rudd
> Sent: Friday, March 07, 2008 4:31 AM
> To: [email protected]
> Subject: [jQuery] Re: How to know if the entire page has loaded, AFTER it
> has loaded? [advanced]
>
> Use the "good old" "load" event.
>
> $(window).load(function () {
> // run code
> });
>
> ( fromhttp://docs.jquery.com/Events/load)
>
> Karl Rudd
>
> On Fri, Mar 7, 2008 at 11:10 PM, Iair Salem <[EMAIL PROTECTED]> wrote:
>
> > Sorry about not being so clear: what I exactly want is to know if
> > window has loaded. I need to be sure if all the IMAGES had been
> > loaded, that's why jQuery.isReady is useless for me. jquery.isReady
> > equals true when DOM is loaded, but not the images.
> > I hope someone could help me.
> > Iair Salem.
>
> > PD: Please Google do something about the delay for a message to be
> > seen and searchable on the group.
>
> > On 7 mar, 09:11, Ariel Flesler <[EMAIL PROTECTED]> wrote:
> > > As far as I know, document.ready will execute functions right away if
> > > the dom is ready.
> > > Also you can use: if( jQuery.isReady ).....
>
> > > On 6 mar, 17:46,IairSalem<[EMAIL PROTECTED]> wrote:
>
> > > > Hello everyone, I have a problem
>
> > > > The basics:
> > > > $(document).ready(function(){alert("DOM Loaded")});
> > > > $(window).load(function(){alert("Full Page & Images Loaded")});
>
> > > > But, what happens if I do this?:
>
> > > > $(window).load(function(){
> > > > setTimeout("foo()", 2000);
> > > > );
>
> > > > function foo(){
> > > > $(window).load(function(){alert("this alert will never occur")}); /
> > > > *calling window load() after it has been called once results in
> > > > nothing happening....*/
>
> > > > }
>
> > > > This beaviour isn't the same as $(document).ready, because $
> > > > (document).ready is handled by jQuery, and jQuery sets jQuery.isReady
> > > > = true, and calls it inmediately.
>
> > > > Maybe I'm asking for the property jQuery.isPageLoaded which would
> tell
> > > > me if the entire page has loaded, also AFTER the page has loaded (for
> > > > example in a click event).
>
> > > > There is a dirty workaround:
>
> > > > var isPageLoaded = false;
> > > > $(window).load(
> > > > function(){
> > > > isPageLoaded=true;}
>
> > > > );
>
> > > > This will workaround the problem and fix it partially (because in
> > > > theory this won't work when loading scripts dinamically)
>
> > > > If you have a better solution, please share it with the group.
>
> > > > Thank you,
>
> > > >IairSalem