我正在使用这样的东西捕获粘贴到输入框中的东西。
$(".inputTextArea").bind('paste', function(e) {
var el = $(this);
setTimeout(function() {
var text = $(el).val();
alert(text);
}, 100);
});
这样可以正常工作,但如果我复制其他文本,删除该字段的内容并粘贴新复制的文本,然后它只显示以前粘贴的文本。
我该如何解决这个问题?
答案 0 :(得分:0)
我认为你需要这样的东西http://jsfiddle.net/wdbbv/
$(".inputTextArea").bind('paste', function(e) {
var el = $(this), range = getSelectionRange(el.get(0));
setTimeout(function() {
var text = el.val().substr(range[0], el.val().length - range[1]
- range[0]);
alert(text);
}, 100);
});
function getSelectionRange(el) {
if ('selectionStart' in el) {
return [el.selectionStart, el.value.length - el.selectionEnd];
} else if (document.selection) {
var range = document.selection.createRange(),
stored_range = range.duplicate();
stored_range.moveToElementText(el);
stored_range.setEndPoint('EndToEnd', range);
return [stored_range.text.length - range.text.length,
el.value.length - (el.selectionStart + range.text.length)];
}
return null; // modify it any way for unsupported browsers
}
或者您可以尝试实施此处描述的方法http://groups.google.com/group/google-web-toolkit/browse_thread/thread/09a3527707d22be0 它使用与剪贴板的直接交互。