2017-01-20 1 views
0

私はcontenteditable divを持っています。 contenteditable divのtextinputイベントをキャプチャしたいしかし、それはIEで動作していません。 'textchange'イベントの代替手段はありますか?jqueryのtextinputイベントがIEでトリガされません。 textchangeをキャプチャするための代替手段はありますか?

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

おかげ

+0

フィドル::: [フィドルリンク(http://jsfiddle.net/7VQxd/15/) –

+1

、イベントである。また、ここで以下のコードであります入力がフォーカスを失ったときに実行されます – lazyborg

答えて

0

が、これはあなたを助けることができることがありますIE textinput作品や他のブラウザのためtextInput作品については

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

これはdivのcontenteditableのためにこれは機能しません。それは入力タイプとテキストエリアのために働いています –

1

を、大文字の 'I' に気づきます。だから、まずjavascriptを使ってユーザエージェントをチェックし、それに応じて文字列を設定してください。 jsfiddleを更新しました。 IEブラウザで

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はそれをサポートしていません。 –

関連する問題