|
|
(3 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| {{extdev}}
| | #redirect [[On page load]] |
| | |
| 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==
| |
| 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>
| |
| | |
| ==References==
| |
| * See Chris Neale's URIid extension for a working example.
| |
| * If you need to have a more complicated listener (not just onload), use [[Dev : Extensions : Example Code : Progress Listeners|progress listeners]].
| |
| * [http://xulplanet.com/references/objref/Location.html Location object]
| |
| | |
| [[Category:Example code|On tab load]] [[Category:Javascript example code|On tab load]] | |