我的代码在输入字段中成功捕获 CTRL + V /粘贴" sURL"通过jQuery。但是之后如何直接获取粘贴的文字?
我的提醒会提示空值。第二次粘贴后,它会提示第一个粘贴的文本。但我想将粘贴的文本切换到第一个 CTRL + V 之后的函数。
有什么想法吗?非常感谢!
$(document).ready(function() {
$("#sURL").bind('paste', function(e) {
alert(document.WA.sURL.value); <!-- returns empty value at 1st paste
});
});
答案 0 :(得分:2)
您可以从事件e
上的剪贴板数据中获取粘贴的文本。下面的代码应该有效:
$(document).ready(function() {
$("#sURL").bind('paste', function(e) {
alert(e.originalEvent.clipboardData.getData('Text'));
});
});
我已经创建了一个fiddle来演示
答案 1 :(得分:0)
有几种方法可以解决:
1)使用clipboardData。这应该适用于IE
$(document).ready(function() {
$("#sURL").bind('paste', function(e) {
alert(e.clipboardData.getData('Text'));
});
});
2)您可以使用计时器并将其粘贴到ID为paste
$("#sURL").live('input paste',function(e){
$('<textarea></textarea>').attr('id', 'paste').appendTo('#editMode');
$("#paste").focus();
setTimeout($(this).paste, 250);
});
试试看,让我知道:)
答案 2 :(得分:0)
使用此功能,可能涵盖所有情况
$("#sURL").on('paste',function(e) {
e.preventDefault();
var text = (e.originalEvent || e).clipboardData.getData('text/plain') || prompt('Paste something..');
conosle.log(text);
// myFunction(test);
});
function myFunction(str)
{
// str contains the pasted string
alert(str);
}