我想捕捉事件时,通过复制粘贴或编程添加到textarea的一些文本,所以我可以添加一些关于它的工作。如何通过复制粘贴或编程方式将某些文本添加到textarea中时捕获事件?
我该怎么做?我应该使用哪种jQuery方法?更改方法没有工作。
$('textarea').on('change', function(){
--do some stuff;
});
我想捕捉事件时,通过复制粘贴或编程添加到textarea的一些文本,所以我可以添加一些关于它的工作。如何通过复制粘贴或编程方式将某些文本添加到textarea中时捕获事件?
我该怎么做?我应该使用哪种jQuery方法?更改方法没有工作。
$('textarea').on('change', function(){
--do some stuff;
});
总是有可以截取的paste事件。
下面是一个例子
var yourElement = document.getElementById("yourElementId");
yourElement.addEventListener('paste', function(event) {
console.log("The data that was just pasted was "+event.clipboardData.getData('text/plain'));
});
试试在你的浏览器在计算器上的导航栏右侧的搜索栏上,并看到自己。
您可以用得到它的参考
document.getElementsByName("q")[0]
您可以使用input
事件处理由用户粘贴完成,
$('textarea').on('input', function(){
--do some stuff;
});
但是,如果你通过编程做这种事件不会被解雇。
...通过复制粘贴...
复制/粘贴位很容易对一个现代浏览器:抓住input
事件。
...或...编程
有没有当textarea的值编程方式更改引发的事件。 唯一的方法是使用MutationObserver
注意subtree
,childList
和characterData
的更改。 MutationObserver
是well supported以外的IE,它直到IE11才到达。但是,对于大多数用途,您可以使用使用过时的“突变事件”的填充物来提供垫片MutationObserver
垫片。只需搜索“MutationObserver polyfill”或“MutationObserver shim”以查找选项。
令我惊讶的是,设置的value
一个textarea
不火Chrome版MutationObserver
(一些其他的事情要做,但不是说)。这意味着为了检测程序化变更,您必须轮询(blech!),保留旧值并定期(比如每20-100ms)检查一次,看它是否有所不同。
的可能的复制[JavaScript的获得上粘贴事件(跨浏览器)剪贴板数据(http://stackoverflow.com/questions/2176861/javascript-get -clipboard数据上的浆状事件跨浏览器) –