MozillaZine

On page load

From MozillaZine Knowledge Base

(Difference between revisions)
Revision as of 04:09, 15 April 2006
Np (Talk | contribs)
(this works different on trunk)
<-- Previous diff
Revision as of 17:13, 30 January 2007
Grimholtz (Talk | contribs)
(moved to MDC)
Next diff -->
Line 1: Line 1:
{{extdev}} {{extdev}}
-This article is for XUL/JavaScript developers who want to have their code executed each time a new page is loaded in browser/mail. 
-==Creating an overlay== 
-First, you need to create an overlay to one (or more, depending on which applications you target) of the following XUL documents: 
-{| border="1" cellpadding="5" rules="all" 
-! Application !! URI to overlay 
-|- 
-| Firefox || <code>chrome://browser/content/browser.xul</code> 
-|- 
-| Thunderbird and Mozilla Mail || <code>chrome://messenger/content/messenger.xul</code>  
-|- 
-| Navigator from the Mozilla Suite || <code>chrome://navigator/content/navigator.xul</code> 
-|} 
-==Attaching a script==+Article moved to [http://developer.mozilla.org/en/docs/Code_snippets:On_page_load MDC].
-Attach a script to your overlay, and add a <code>load</code> event listener to <code>appcontent</code> element (browsers) or <code>messagepane</code> (mail) by putting this code in the script:+
-<pre>window.addEventListener("load", function() { myExtension.init(); }, false); 
- 
-var myExtension = { 
- init: function() { 
- var appcontent = document.getElementById("appcontent"); // browser 
- if(appcontent) 
- appcontent.addEventListener("load", this.onPageLoad, true); 
- var messagepane = document.getElementById("messagepane"); // mail 
- if(messagepane) 
- messagepane.addEventListener("load", this.onPageLoad, true); 
- }, 
- 
- onPageLoad: function(aEvent) { 
- var doc = aEvent.originalTarget; // doc is document that triggered "onload" event 
- // do something with the loaded page. 
- // doc.location is a Location object (see below for a link). 
- // You can use it to make your code executed on certain pages only. 
- if(doc.location.href.search("forum") > -1) 
- alert("a forum page is loaded"); 
- } 
-} 
-</pre> 
-Current Firefox trunk nightlies will fire the onPageLoad function for not only documents, but xul:images (favicons in tabbrowser). If you only want to handle documents, ensure aEvent.originalTarget.nodeName == "#document" [https://bugzilla.mozilla.org/show_bug.cgi?id=329514]. 
- 
-==References== 
-* See Chris Neale's URIid extension for a working example. 
-* If you need to have a more complicated listener (not just onload), use [[progress listeners]]. 
-* [http://xulplanet.com/references/objref/Location.html Location object] 
[[Category:Example code|On tab load]] [[Category:JavaScript example code|On tab load]] [[Category:Example code|On tab load]] [[Category:JavaScript example code|On tab load]]

Revision as of 17:13, 30 January 2007

This page is part of the extension development documentation project.

Ask your questions in MozillaZine Forums. Also try browsing example code.

Note: development documentation is in process of being moved to Mozilla Development Center (MDC).


Article moved to MDC.