2011-11-27 49 views
5

我想捕獲文本上按Ctrl +V事件如下..任何其他替代捕捉文本上按Ctrl + V

  1. 創建頁面一個textarea和設置高度0像素和寬度0px。像下面

    <textarea id="a" style="height:0px;width:0px"></textarea> 
    
  2. 在按壓V鍵我設置的焦點到textarea的,然後用Ctrl + V按鈕。像下面..

    shortcut.add("X",function() { 
        $('#a').focus(); 
    }); 
    // In between user have to press Ctrl+V to paste the content 
    shortcut.add("V",function() { 
        alert($('#a').val()); 
    }); 
    

,我認爲這是一個最沒有效率的方法,並等待寶貴的建議,以改善這個..

+0

這就是所謂的谷歌。 http://stackoverflow.com/questions/237254/how-do-you-handle-oncut-oncopy-and-onpaste-in-jquery和http://www.quirksmode.org/dom/events/tests/cutcopypaste。 html – 2011-11-27 12:58:24

+1

恐怕沒有別的辦法了。 –

+1

@Consciousness:我認爲你沒有正確地讀過這個問題:OP想要捕獲粘貼的文本,這通常不可能使用粘貼事件。 –

回答

2

您可以將事件到paste事件。

$('textarea').bind('paste', function() { 
    // Hello, Mr. Paste! 
}); 
+0

在粘貼事件上,我無法捕獲粘貼的文本。與$(this).val()一樣,返回null /以前粘貼的文本。 – Exception

+0

你可以每次更改字符串到一個變量,如果它是一個粘貼事件比較字符串 – 2011-11-27 20:38:19

0

您可以捕獲CTRL + V爲:

 
$(document).ready(function() 
{ 
    var ctrlDown = false; 
    var ctrlKey = 17, vKey = 86; 

    $(document).keydown(function(e) 
    { 
     if (e.keyCode == ctrlKey) ctrlDown = true; 
    }).keyup(function(e) 
    { 
     if (e.keyCode == ctrlKey) ctrlDown = false; 
    }); 

    $("textarea").keydown(function(e) 
    { 
     if (ctrlDown && (e.keyCode == vKey)) return false; 
    }); 
}); 

+0

我有shortcut.js文件捕獲按Ctrl + V操作飛這..這不是我的ploblem – Exception

+0

不是答案對這個問題,但它回答了我的。謝謝。 http://stackoverflow.com/a/8760097/388902 – pelms