input textareaマウスの貼り付けを傍受
1635 ワード
問題が見つかりました.input/textareaでマウスで内容を貼り付けると、valueの変更が判断できないことがわかりました.htmlコードは以下の通りです.
私が書いたリスニング方法:(jqueryを使用)
以上の方法では、キーボードのショートカットキーの貼り付けがマウスの貼り付けで失効したと判断するしかありません.http://dramin.duapp.com/?p=112)は主に入力状態の変化を判断することによりonchangeのようにIE 9以上、firefox、chromeなどがHtml中のoninputイベントをサポートしているが、IE 6/7/8はonpropertychangeイベントで解決できるが、IE 6/7/8でinputがdisabledであればイベントは無効であり、IE 9+FFopera 11+であり、このイベントはjsで値を変更した場合にトリガーされず、自動ドロップダウンボックスで値を選択した場合にトリガーされず、コードは次のとおりです.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> </title>
<script type="text/javascript" src="../jquery.js"></script>
</head>
<body>
<textarea name="" id="test" cols="30" rows="10"></textarea>
</body>
</html>
私が書いたリスニング方法:(jqueryを使用)
var $test = $('#test');
$test.on('keyup',function(){
console.log('keyup__'+this.value);
})
.on('mouseup',function(){
console.log('mouseup__'+this.value);
})
;
以上の方法では、キーボードのショートカットキーの貼り付けがマウスの貼り付けで失効したと判断するしかありません.http://dramin.duapp.com/?p=112)は主に入力状態の変化を判断することによりonchangeのようにIE 9以上、firefox、chromeなどがHtml中のoninputイベントをサポートしているが、IE 6/7/8はonpropertychangeイベントで解決できるが、IE 6/7/8でinputがdisabledであればイベントは無効であり、IE 9+FFopera 11+であり、このイベントはjsで値を変更した場合にトリガーされず、自動ドロップダウンボックスで値を選択した場合にトリガーされず、コードは次のとおりです.
function bindChangeHandler(input,fun) {
if("onpropertychange" in input) {//IE6、7、8, disable
input.onpropertychange = function() {
if(window.event.propertyName == "value") {
if(fun) {
fun.call(this,window.event);
}
}
}
} else {
//IE9+ FF opera11+, js ,
input.addEventListener("input",fun,false);
}
}
//
bindChangeHandler($test[0],function(){
alert(this.value);
});