summaryrefslogtreecommitdiffstats
path: root/src/autosize.js
diff options
context:
space:
mode:
authorJack Moore <hello@jacklmoore.com>2016-01-26 03:31:38 -0500
committerJack Moore <hello@jacklmoore.com>2016-01-26 03:31:38 -0500
commit1e94f8aa0e6dfa7b52217bd4527e1dfdf38ed364 (patch)
tree1210186bd3d855156601e69576ee2b681e1c005c /src/autosize.js
parente3534dbaa5f4062f9cff26ea01ac5a55f443441c (diff)
downloadautosize-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.js21
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);
}