Skip navigation.

miscoded

the web is a hack

Firefox's pageshow and pagehide events not DOM2 events-compatible?

, , , , ,

These events sound quite interesting and author friendly. But unless I'm missing something their current implementation in Firefox simply sucks!

I tried
document.addEventListener( 'pageShow', function(e){ log('pageshow fired'); }, false );
document.addEventListener( 'pageHide', function(e){ log('pagehide fired'); }, false );


No go. Then I tried window.addEventListener but that doesn't work either. Finally, I looked at the sample code and noticed it only shows DOM0-style event handlers -
<body onPageShow="..."
. :yuck: Really?? That makes the events pretty useless. I would like Opera to support similar events but Firefox's implementation looks too broken to copy. Tell me I'm missing something..

window.opener and security - an unfixable problem?quote of the day

Comments

tarquinwj 14. March 2007, 17:47

Did you try adding the event listeners to the body instead of the document? Or perhaps the window instead? Remember that FF's DOM events are broken wrt document. They map body to window, and ignore the document.

xErath 14. March 2007, 20:15

Opera support DOMFocusIn and DOMFocusOut, which are enough.

sypasche 14. March 2007, 20:40

The event names are pageshow / pagehide (case sensitive). And they are dispatched to the window, not the document (http://lxr.mozilla.org/mozilla/source/layout/base/nsDocumentViewer.cpp#1245). So the correct code would be:

window.addEventListener( 'pageshow', function(e){ log('pageshow fired'); }, false );
window.addEventListener( 'pagehide', function(e){ log('pagehide fired'); }, false );

hallvors 15. March 2007, 12:52

sypasche: thanks! :smile: I tried all lower case with document.addEventListener and then I tried camel case before trying window.addEventListener .. 8-)

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies