Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #32160

Re: custom event in IE

Path csiph.com!aioe.org!news.mixmin.net!weretis.net!feeder4.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups comp.lang.javascript
Subject Re: custom event in IE
Date Tue, 10 Jan 2017 12:53:37 +0100
Organization PointedEars Software (PES)
Lines 60
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>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
X-Trace solani.org 1484049220 8030 eJwFwYEBwDAEBMCVEvxjHKH2H6F3UF62G0HDYt37iXS3jUnMfvmIshrbG7JzmMh8GuE4LP0BK28RFA== (10 Jan 2017 11:53:40 GMT)
X-Complaints-To abuse@news.solani.org
NNTP-Posting-Date Tue, 10 Jan 2017 11:53:40 +0000 (UTC)
User-Agent KNode/4.14.2
Cancel-Lock sha1:tJQoiNDaB7WbQhcZzkamrII8kXo=
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
X-User-ID eJwNxsEBwCAIA8CViEDEcTTK/iO097p0gprBZGRnl0g8tNkgTrudvPEPFzqoFjfglDFic92SD996q4cipn9DFBUV
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
X-NNTP-Posting-Host eJwFwYcRwEAIA7CVnmI4j0Mo+48QCRYSnR4Ix+FMygsiqXx9WWOLRslofiRlm5xddVezfv4DFWEQyg==
Xref csiph.com comp.lang.javascript:32160

Show key headers only | View raw


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


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