Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #32160
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | comp.lang.javascript |
| Subject | Re: custom event in IE |
| Date | 2017-01-10 12:53 +0100 |
| Organization | PointedEars Software (PES) |
| Message-ID | <2568174.e9J7NaK4W3@PointedEars.de> (permalink) |
| References | <ZpKdncuDJ6SUqenFnZ2dnUU7-YHNnZ2d@westnet.com.au> <8bydnVoLx8BUq-nFnZ2dnUU7-bednZ2d@westnet.com.au> <4259298.GXAFRqVoOG@PointedEars.de> <drGdnYqmpYpK_unFnZ2dnUU7-bfNnZ2d@westnet.com.au> |
Andrew Poulos wrote:
> I used a try/catch and when it fails for IE the "catch" part uses
> initCustomEvent
> <https://msdn.microsoft.com/en-us/library/ff975987(v=vs.85).aspx>
> to create the event:
>
> function dispatch(elem, theEvent) {
> try {
> elem.dispatchEvent(new CustomEvent(theEvent));
> } catch(err) {
> var evt = document.createEvent("CustomEvent");
> evt.initCustomEvent(theEvent, true, false, {});
> elem.dispatchEvent(evt);
> }
> }
Because not only “new CustomEvent(theEvent)” may throw an exception, you
should not simply handle all exceptions caused by this statement with the
catch code, but only the specific one. Since there is no compatible way to
catch only a specific type of exception (AFAIK only Mozilla JavaScript has a
way, see the ES Matrix), you should rethrow the exception if it is not the
one that you want to handle. For example:
try {
elem.dispatchEvent(new CustomEvent(theEvent));
} catch (err) {
if (!(err instanceof TypeError)) throw err;
var evt = document.createEvent("CustomEvent");
evt.initCustomEvent(theEvent, true, false, {});
elem.dispatchEvent(evt);
}
In JScript the “number” property of the Error instance referred by “err”
could also help to tell apart this exception from other TypeError
exceptions:
<https://msdn.microsoft.com/en-us/library/hc53e755(v=vs.94).aspx>
<https://msdn.microsoft.com/en-us/library/1dk3k160(v=vs.94).aspx>
But note that a TypeError exception for “new CustomEvent(theEvent)” is not
thrown only in IE/MSHTML, but also in all user agents that do not implement
CustomEvent which was introduced in W3C DOM 4 and the WHATWG DOM:
<https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/initCustomEvent> f.
<http://www.w3.org/TR/2015/REC-dom-20151119/#interface-customevent>
Since the first argument to the CustomEvent constructor and the
initCustomEvent() method is specified to be a DOMString designating the type
of the event, you should name your formal parameter something like
“eventType”; not “theEvent” which conveys the misconception that it would be
a reference to an event object.
--
PointedEars
FAQ: <http://PointedEars.de/faq> | <http://PointedEars.de/es-matrix>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
custom event in IE Andrew Poulos <ap_prog@hotmail.com> - 2017-01-10 12:08 +1100
Re: custom event in IE Andrew Poulos <ap_prog@hotmail.com> - 2017-01-10 12:20 +1100
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-10 02:45 +0100
Re: custom event in IE Andrew Poulos <ap_prog@hotmail.com> - 2017-01-10 15:32 +1100
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-10 12:53 +0100
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-11 08:25 +0100
Re: custom event in IE James Kirk <noneya.invalid@gmail.com> - 2017-01-10 21:52 -0500
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-11 04:09 +0100
Re: custom event in IE James Kirk <noneya.invalid@gmail.com> - 2017-01-11 21:31 -0500
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-12 14:22 +0100
Re: custom event in IE Scott Sauyet <scott@sauyet.com> - 2017-01-14 23:01 +0000
Re: custom event in IE "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2017-01-15 09:51 -0800
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-15 22:37 +0100
Can we recognize Constructor Functions (was: custom event in IE) Scott Sauyet <scott@sauyet.com> - 2017-01-15 23:39 +0000
Re: custom event in IE Scott Sauyet <scott@sauyet.com> - 2017-01-15 23:15 +0000
Re: custom event in IE "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2017-01-15 22:36 -0800
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-16 12:54 +0100
Re: custom event in IE "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2017-01-16 14:18 -0800
Re: custom event in IE Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-17 00:24 +0100
csiph-web