[Greasemonkey] Getting script to run once the page fully loads

Edward Kawas edward.kawas at gmail.com
Sat May 20 18:36:30 EDT 2006


Thanks, you are right.

Eddie 

> -----Original Message-----
> From: greasemonkey-bounces at mozdev.org 
> [mailto:greasemonkey-bounces at mozdev.org] On Behalf Of Arvid Jakobsson
> Sent: Saturday, May 20, 2006 9:49 AM
> To: greasemonkey at mozdev.org
> Subject: Re: [Greasemonkey] Getting script to run once the 
> page fully loads
> 
> Hi Ed.
> May be you are doing this:
> 
> window. addEventListener('load', myFunction(), false);
> 
> instead of this
> 
> window. addEventListener('load', myFunction, false);
> 
> the former will _call_ the function "myFunction" and pass its 
> return value to addEventListener, while the latter will pass 
> the function pointer of "myFunction" to addEventListener.
> 
> 
> On 5/19/06, Edward Kawas <edward.kawas at gmail.com> wrote:
> > Hi Mark,
> >
> >  when I did window.addEventListener('load', my_entire_script_code, 
> > false), my code actually was called before the page loaded. 
> In fact, I changed the 'load'
> > to unload, blur, etc and my code was called regardless.
> >
> > When I removed the line
> >  window.addEventListener('load', my_entire_script_code, false);
> >
> > The code didn't run, so I am fairly confident that that 
> listener was 
> > calling my code.
> >
> > Eddie
> >
> > > -----Original Message-----
> > > From: greasemonkey-bounces at mozdev.org 
> > > [mailto:greasemonkey-bounces at mozdev.org] On Behalf Of Mark Pilgrim
> > > Sent: Friday, May 19, 2006 1:45 PM
> > > To: greasemonkey at mozdev.org
> > > Subject: Re: [Greasemonkey] Getting script to run once the page 
> > > fully loads
> > >
> > > On 5/19/06, Jeremy Dunck <jdunck at gmail.com> wrote:
> > > > Actually, user scripts inject just before the load 
> event-- on the 
> > > > firefox-specific DOMContentLoaded event.
> > > >
> > > > chrome/browser.js:
> > > > GM_BrowserUI.chromeLoad = function(e) { ...
> > > >   GM_listen(this.appContent, "DOMContentLoaded", GM_hitch(this, 
> > > > "contentLoad")); ...
> > > > }
> > > >
> > > > GM_BrowserUI.contentLoad = function(e) { ...
> > > >   if (GM_getEnabled() && GM_isGreasemonkeyable(href)) { ..
> > > >     this.gmSvc.domContentLoaded({ wrappedJSObject: 
> unsafeWin }); ...
> > > > }
> > > >
> > > > components/greasemonkey.js:
> > > >   domContentLoaded: function(wrappedWindow) { ...
> > > >       this.injectScripts(scripts, href, unsafeWin);
> > >
> > > This is all very interesting, but does not answer the original 
> > > poster's question.  If I understand it correctly, you want a 
> > > Greasemonkey script to load *after* the page is 
> completely finished 
> > > loading, including all external images, etc.
> > >
> > > If so, then what you need to do is define an onload 
> handler and call 
> > > your main function from it, like so:
> > >
> > > function my_entire_script_code() {
> > > ... my code...
> > > }
> > >
> > > window.addEventListener('load', my_entire_script_code, false);
> > >
> > > Hope this helps.
> > >
> > > --
> > > Cheers,
> > > -Mark
> > > _______________________________________________
> > > Greasemonkey mailing list
> > > Greasemonkey at mozdev.org
> > > http://mozdev.org/mailman/listinfo/greasemonkey
> >
> > _______________________________________________
> > Greasemonkey mailing list
> > Greasemonkey at mozdev.org
> > http://mozdev.org/mailman/listinfo/greasemonkey
> >
> _______________________________________________
> Greasemonkey mailing list
> Greasemonkey at mozdev.org
> http://mozdev.org/mailman/listinfo/greasemonkey



More information about the Greasemonkey mailing list