W3C home > Mailing lists > Public > www-dom@w3.org > October to December 2011

Re: [Events] A case where on* attributes are required

From: David Bruant <bruant.d@gmail.com>
Date: Fri, 23 Dec 2011 19:40:49 +0100
Message-ID: <4EF4CB31.1020009@gmail.com>
To: olli@pettay.fi
CC: www-dom@w3.org, Boris Zbarsky <bzbarsky@MIT.EDU>
Le 23/12/2011 19:32, Olli Pettay a écrit :
> On 12/23/2011 08:13 PM, David Bruant wrote:
>> Hi,
>>
>> A couple of tweets and a private e-mail conversation with Boris Zbarsky
>> led to the conclusion that some event handlers can't be expressed with
>> event.addEventListener
> you mean eventtarget.addEventListener ;)
Of course :-)

>> and require inline on* attributes. I'd like to
>> raise this concern here.
>>
>> Currently, if one wants to know when an iframe was loaded, she has to
>> set an inline @onload attribute:<iframe onload="doSomething()">
>> Several aspects contribute to the necessity of this attribute. First,
>> the event has to be fired synchronously. Second, this happens while HTML
>> parsing is ongoing, so the HTMLIframeElement is created while parsing.
>> These two combined make that the event may need to be fired before any
>> script has the opportunity to use the HTMLIframeElement reference can be
>> attached a 'load' event listener.
>
> You can just add capturing event listener before <iframe> is added to
> document. For example
>
> <html>
>   <head>
>   <script>
>     document.addEventListener("load",
>       function(e) {
>         if (e.target == document.getElementById("ifr");) {
>           ...
>         }
>       },
>       true
>     );
>   </script>
>   </head>
>   <body>
>     <iframe id="ifd" src="http://www.foobar.html"></iframe>
>   </body>
> </html>
.... yeah ... right ... *feeling embarrassed* :-s

Boris mentionned that the usual case is to want different listeners for
different iframes, but it can be implemented with your method or some
library on top of it.

Thanks :-)

David
Received on Saturday, 24 December 2011 08:41:50 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 22 June 2012 06:14:09 GMT