diff options
author | Jack Moore <hello@jacklmoore.com> | 2016-01-26 03:31:38 -0500 |
---|---|---|
committer | Jack Moore <hello@jacklmoore.com> | 2016-01-26 03:31:38 -0500 |
commit | 1e94f8aa0e6dfa7b52217bd4527e1dfdf38ed364 (patch) | |
tree | 1210186bd3d855156601e69576ee2b681e1c005c /src/autosize.js | |
parent | e3534dbaa5f4062f9cff26ea01ac5a55f443441c (diff) | |
download | autosize-1e94f8aa0e6dfa7b52217bd4527e1dfdf38ed364.zip autosize-1e94f8aa0e6dfa7b52217bd4527e1dfdf38ed364.tar.gz autosize-1e94f8aa0e6dfa7b52217bd4527e1dfdf38ed364.tar.bz2 |
Used newer Event constructor when available. Fixes #280.3.0.15
Diffstat (limited to 'src/autosize.js')
-rw-r--r-- | src/autosize.js | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/autosize.js b/src/autosize.js index c02f4cf..d0e47ce 100644 --- a/src/autosize.js +++ b/src/autosize.js @@ -14,6 +14,18 @@ const set = (typeof Set === "function") ? new Set() : (function () { } })(); +let createEvent = (name)=> new Event(name); +try { + new Event('test'); +} catch(e) { + // IE does not support `new Event()` + createEvent = (name)=> { + const evt = document.createEvent('Event'); + evt.initEvent(name, true, false); + return evt; + }; +} + function assign(ta, {setOverflowX = true, setOverflowY = true} = {}) { if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || set.has(ta)) return; @@ -111,8 +123,7 @@ function assign(ta, {setOverflowX = true, setOverflowY = true} = {}) { } if (startHeight !== ta.style.height) { - const evt = document.createEvent('Event'); - evt.initEvent('autosize:resized', true, false); + const evt = createEvent('autosize:resized'); ta.dispatchEvent(evt); } } @@ -166,15 +177,13 @@ function assign(ta, {setOverflowX = true, setOverflowY = true} = {}) { function destroy(ta) { if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA')) return; - const evt = document.createEvent('Event'); - evt.initEvent('autosize:destroy', true, false); + const evt = createEvent('autosize:destroy'); ta.dispatchEvent(evt); } function update(ta) { if (!(ta && ta.nodeName && ta.nodeName === 'TEXTAREA')) return; - const evt = document.createEvent('Event'); - evt.initEvent('autosize:update', true, false); + const evt = createEvent('autosize:update'); ta.dispatchEvent(evt); } |