- From: Adrian Bateman <adrianba@microsoft.com>
- Date: Wed, 31 Dec 2008 09:04:19 -0800
- To: Jonas Sicking <jonas@sicking.cc>
- CC: Ian Hickson <ian@hixie.ch>, public-html <public-html@w3.org>
On 30 Dec 2008, Jonas Sicking wrote: > On Tue, Dec 30, 2008 at 6:46 PM, Adrian Bateman <adrianba@microsoft.com> > wrote: > > Currently, IE only fires on the body. Firefox fires on body, then > document, then window. Opera fires on window then document. I'm not sure > if Webkit supports these events. It appears, then, that there is currently > no consensus and if we are to make and test a change for IE8 we'd like to > ensure we will all end up in the same place. If this isn't an issue that > will be addressed soon then we'll likely stick with the behaviour we have > now and look again in a future release when things are settled. > > When you say that Firefox fires at body, then document, then window, > you mean that we fire a single event at the body which then bubbles to > the document and window, right? > > If Opera fires on window then body, does this mean that they are > firing two non-bubbling events? This seems possible, but unnecessarily > complicated to me. > > IMHO only a single event should be fired, where to fire it and if it > should bubble is of course a good question. Of course. I probably wasn't precise enough with my language - I didn't test for bubbling or not so I meant that the event is seen by event sinks at the places above. I would assume it's due to bubbling in Firefox - certainly the text in Bugzilla points to that being the design. I think the difference between IE8 and Firefox currently is that IE8 doesn't bubble. I'm not sure what is happening in Opera. The code I used to test is below. function main() { if(window.attachEvent) { // Register ononline listeners window.attachEvent("ononline", function(){log("window.ononline")}); document.attachEvent("ononline", function(){log("document.ononline")}); document.body.attachEvent("ononline", function(){log("document.body.ononline")}); // Register onoffline listeners window.attachEvent("onoffline", function(){log("window.onoffline")}); document.attachEvent("onoffline", function(){log("document.onoffline")}); document.body.attachEvent("onoffline", function(){log("document.body.onoffline")}); } else { // Register ononline listeners window.addEventListener("online", function(){log("window.ononline")},false); document.addEventListener("online", function(){log("document.ononline")},false); document.body.addEventListener("online", function(){log("document.body.ononline")},false); // Register onoffline listeners window.addEventListener("offline", function(){log("window.onoffline")},false); document.addEventListener("offline", function(){log("document.onoffline")},false); document.body.addEventListener("offline", function(){log("document.body.onoffline")},false); } }
Received on Wednesday, 31 December 2008 17:07:22 UTC