当文本被拖入文本框时,触发javascript事件跨浏览器

我想在文本框内的文本发生变化时触发
javascript事件,无论是通过用户输入文本,复制粘贴文本还是拖动文本.我遇到的问题是用户将文本从某个地方拖到文本框中.

在文本框之间拖动文本的情况下,在chrome中,对于拖动文本框的文本框,会触发一次change()事件,第二次将文本放入目标文本框时.

在firefox或IE8中,更改事件永远不会触发.

是否有一个更适合我可以听的跨越浏览器的活动?

Here’s an example

出于文档目的,这里是我正在使用的代码,从上面的jsfiddle复制.

HTML

<input value="drag me over there">
<input>

<div class="message"></div>

jQuery的

$('input').change(function() {
    $('.message').append('changed<br/>');
});

最佳答案 下面的第一个示例适用于所有最近的浏览器,包括ie9,第二个示例适用于ie8及以下.

$("some input element").bind("input", function () {
    // do something
});

$('some input element').bind("propertychange", function (e) {
    if (e.originalEvent.propertyName == "value") {
        // do something
    }
});

这些将触发事件,但输入框内的内容会发生变化.

点赞