- From: Jonas Sicking <jonas@sicking.cc>
- Date: Wed, 09 Apr 2008 15:48:47 -0700
- To: Travis Leithead <travil@windows.microsoft.com>
- CC: Anne van Kesteren <annevk@opera.com>, Doug Schepers <schepers@w3.org>, Web API public <public-webapi@w3.org>
Travis Leithead wrote: > From your link, it appears the only reason this was dropped was because the folks in discussion at the time thought the only use case for this feature was Accessibility venders (ATs). It wasn't just dropped because it wasn't needed (because AT doesn't need to use DOM APIs). It was also dropped since it would mean that internal code can not use the generic DOM APIs to add event listeners. This is something that we do a lot in Firefox code and that is done by a lot of Firefox extensions. See http://lists.w3.org/Archives/Member/member-webapi/2006Feb/0301.html and the followups. I agree that this is something that we could work around if absolutely needed. I'm definitely an advocate for not designing Web APIs for internal consumers. However it is always a very nice bonus when public APIs are also useful internally. So I too would be interested in hearing more about the use cases here. Could the following be used as a solution? oldAddEL = EventTarget.prototype.addEventListener; Node.prototype.addEventListener = function(type, listener, useCapture) { if (!this.getUserData("listeners")) { this.setUserData("listeners", [], null); } this.getUserData("listeners").push(listener); oldAddEL.call(this, type, listener, useCapture); } This should let the page access all listeners added to any node using getUserData("listeners"). / Jonas
Received on Wednesday, 9 April 2008 22:51:11 UTC