Sus*_*Pal 7 html javascript dom onpaste
我看到当我尝试在onpaste调用其函数时从textarea字段读取值时,我得到字段的旧值(粘贴操作之前的值),而不是新值(粘贴操作之后的值).
以下是此行为的演示:http://jsfiddle.net/qsDnr/
代码的副本如下:
<!DOCTYPE html>
<html>
<head>
<title>On Paste</title>
<script type="text/javascript">
var textareaElement;
var previewElement;
function update()
{
previewElement.innerHTML = textareaElement.value;
}
window.onload = function() {
textareaElement = document.getElementById('textarea');
previewElement = document.getElementById('preview');
textareaElement.onpaste = update
}
</script>
</head>
<body>
<textarea id="textarea">
</textarea>
<div id="preview">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下步骤确认行为.
foo到剪贴板.foo出现在div元素中.因为我想要的div元素始终显示什么是与粘贴操作textarea元素更新,所需的输出foo,并foo foo在步骤2和步骤分别3.
我设法获得所需输出的一种方法是通过延迟update()函数调用window.setTimeout(),而不是
textareaElement.onpaste = update
Run Code Online (Sandbox Code Playgroud)
我有
textareaElement.onpaste = function() {
window.setTimeout(update, 100);
};
Run Code Online (Sandbox Code Playgroud)
这一次(演示:http://jsfiddle.net/cwpLS/).这就是我想要的.然而,这更像是一种解决方法,而不是一种直接的方式来做我想做的事情.我想知道是否有任何替代或更好的方法来做到这一点.