|
|
@ -1,5 +1,15 @@ |
|
|
|
import { isAndroid, isIE9 } from '../util/env' |
|
|
|
|
|
|
|
if (isIE9) { |
|
|
|
// http://www.matts411.com/post/internet-explorer-9-oninput/
|
|
|
|
document.addEventListener('selectionchange', () => { |
|
|
|
const el = document.activeElement |
|
|
|
if (el && el.vmodel) { |
|
|
|
trigger(el) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
export default { |
|
|
|
bind (el, value) { |
|
|
|
if (!isAndroid) { |
|
|
@ -7,8 +17,7 @@ export default { |
|
|
|
el.addEventListener('compositionend', onCompositionEnd) |
|
|
|
} |
|
|
|
if (isIE9) { |
|
|
|
el.addEventListener('cut', trigger) |
|
|
|
el.addEventListener('keyup', triggerOnDelOrBackspace) |
|
|
|
el.vmodel = true |
|
|
|
} |
|
|
|
}, |
|
|
|
unbind (el) { |
|
|
@ -16,10 +25,6 @@ export default { |
|
|
|
el.removeEventListener('compositionstart', onCompositionStart) |
|
|
|
el.removeEventListener('compositionend', onCompositionEnd) |
|
|
|
} |
|
|
|
if (isIE9) { |
|
|
|
el.removeEventListener('cut', trigger) |
|
|
|
el.removeEventListener('keyup', triggerOnDelOrBackspace) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -29,17 +34,11 @@ function onCompositionStart (e) { |
|
|
|
|
|
|
|
function onCompositionEnd (e) { |
|
|
|
e.target.composing = false |
|
|
|
trigger(e) |
|
|
|
} |
|
|
|
|
|
|
|
function trigger (e) { |
|
|
|
const ev = document.createEvent('HTMLEvents') |
|
|
|
ev.initEvent('input', true, true) |
|
|
|
e.target.dispatchEvent(ev) |
|
|
|
trigger(e.target) |
|
|
|
} |
|
|
|
|
|
|
|
function triggerOnDelOrBackspace (e) { |
|
|
|
if (e.keyCode === 46 || e.keyCode === 8) { |
|
|
|
trigger(e) |
|
|
|
} |
|
|
|
function trigger (el) { |
|
|
|
const e = document.createEvent('HTMLEvents') |
|
|
|
e.initEvent('input', true, true) |
|
|
|
el.dispatchEvent(e) |
|
|
|
} |
|
|
|