2017-01-20 8 views
0

У меня есть контент-контент. Я хочу захватить событие textinput для contenteditable div. Но это не работает в IE. Есть ли альтернатива для события «textchange»?Событие textinput в jquery не запускается в IE. Любая альтернатива для захвата текстового обмена?

document.getElementById("div").addEventListener("textInput", function() { 
    alert("contenteditable fires input"); }); 

Благодаря

+0

скрипку ::: [ссылка скрипку] (http://jsfiddle.net/7VQxd/15/) –

+1

В IE браузер, событие выполненный, когда вход заблокирован фокусом – lazyborg

ответ

0

может быть это может помочь вам:

$("Your selector here").change(function() 
{ 
//Your code here 
}); 
+2

Это не работает для div contenteditable. Его работа для типов ввода и textarea –

1

Для IE textinput работ и для других браузеров textInput работает, обратите внимание на Прописной 'я'. Итак, сначала проверьте пользовательский агент, используя javascript, а затем соответствующим образом установите строку. Я обновил ваш jsfiddle. Кроме того, здесь приведен фрагмент кода ниже:

var ua = window.navigator.userAgent; 
 
var msie = ua.indexOf("MSIE "); 
 
var eventListenerString; 
 
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) 
 
    eventListenerString = "textinput"; 
 
else 
 
    eventListenerString = "textInput"; 
 

 
document.getElementById("div").addEventListener(eventListenerString, function() { 
 
    alert("contenteditable fires input"); 
 
}); 
 

 
document.getElementById("textarea").addEventListener(eventListenerString, function() { 
 
    alert("textarea fires input"); 
 
});
#div{ background: red; width: 200px; height: 100px;} 
 
#textarea{ background: blue; width: 200px; height: 100px;}
<div contenteditable id="div"></div> 
 

 
<textarea id="textarea"></textarea>

+1

не нуждается в нюхании UAS ... браузер будет только запускать метод, который он поддерживает. inputEl.addEventListener ('textinput', mytxtInput); inputEl.addEventListener ('textInput', mytxtInput); ... FX не поддерживает его вообще. –