是否可以拦截和修改粘贴到textarea的文本?
如果无法拦截,可以在粘贴后修改吗? (不修改textarea中已存在的文本。)
答案 0 :(得分:3)
使用jQuery:
jQuery(function($){
$('#your_element').bind('paste', function(event){
event.preventDefault();
var clipboardData = event.originalEvent.clipboardData.getData('text/plain');
console.log(clipboardData);
});
}
});
适用于IE和Webkit。使用Firefox,您可能必须使用它:
http://intridea.com/2007/12/16/faking-onpaste-in-firefox?blog=company
答案 1 :(得分:1)
可能拦截keypress
es,知道何时按下 CTRL + C ,缓存当前文本,然后在 CTRL + C 的keyup
,根据缓存的值查看当前值,通过简单的文本处理,您可以了解新文本,并根据需要执行任何操作,并相应地进行更新。
答案 2 :(得分:0)
我知道如何执行此操作的最佳方法是等待粘贴文本字段的内容,然后等待keyup或keydown触发器。这显示在下面的代码中:
<script language="javascript">
function testfunction()
{
// This function will execute whenever the content of
}
</script>
<textarea onkeyup="testfunction()" onkeydown="testfunction()"></textarea>
如果要监视textarea以进行任何更改,以下代码将执行此操作。它会每1/10秒检查一次textarea的值以进行任何更新。
<textarea id="testfield"></textarea>
<script language="javascript">
var textarea = document.getElementById('testfield');
var textval = '';
function monitor()
{
if(textval != textarea.value)
{
textval = textarea.value;
testfunction();
}
setTimeout('monitor()', 100);
}
function testfunction()
{
// This function will get executed whenever the value of the text area is altered (at most within 1/10th of a second)
}
monitor();
</script>
在这两种情况下,您可以在testfunction()时修改textarea的值,然后使用更新的值更新textarea的值。