Re: Detecting and Creating Events

Stewart Brodie wrote:
> Garrett Smith <dhtmlkitchen@gmail.com> wrote:
>
>   
>> The inability to easily and accurately detect events is a problem.
>> Programs want to know if an event is implemented at runtime. If it is,
>> then the feature can be used. If not, it a fallback stratety is in
>> order. Many new event types are being created and implemented. How can
>> a program feature-test to see if they are implemented?
>>     
>
> DocumentEvent.canDispatch() would seem to fit the bill, although it's not
> clear exactly what criteria this method is supposed to base its answer on
> right now.  You could suggest a clarification for the text and then you
> don't need to add all those new methods.
>
>   
Yes, can we have a clarification of the text. I would hope that if 
canDispatch() was already implemented in Firefox-3.5  then 
document.canDispatch("mouseenter") would return false. But the current 
text is ambiguous enough that one could read it as as a test that the 
following would succeed:
    var e = document.createEvent("MouseEvent"); 
e.initEvent("mouseenter", false, true); document.body.dispatchEvent(e);
>> DOM 2 Events provides "createEvent(type)", but then required an
>> additional step initEvent or initMouseEvent. Method initMouseEvent
>> takes 15 arguments, none of them are memorable. It is painful to use.
>>     
>
> Honestly, how often does scripting wish to simulate UIEvents, MouseEvents,
> KeyboardEvents, MutationEvents or MutationNameEvents?  The only use case I
> can think of is a test harness that's trying to drive an application under
> test.
>
>   

Well, simulating "mouseenter" / "mouseleave" would be useful, but in 
general that would be done in library.
I can't think of any other use-case for simulating events in the modules 
you listed.
Some of the basic events (change, submit, reset, load, error) and 
textInput could be useful for enhancing HTML elements.
For example, an <ul> could be used to emulate a <select>, with "change" 
events being dispatched as appropriate.

Received on Monday, 24 August 2009 00:15:31 UTC