Все знают, что это - потому что они используют голубей , конечно!
, О, да, это и Mapreduce.
Современные браузеры поддерживают onpaste :
<!DOCTYPE html>
<html>
<head>
<title>onpaste event example</title>
</head>
<body>
<h1>Play with this editor!</h1>
<textarea id="editor" rows="3" cols="80">
Try pasting text into this area!
</textarea>
<script>
function log(txt) {
document.getElementById("log").appendChild(document.createTextNode(txt + "\n"));
}
function pasteIntercept(evt) {
log("Pasting!");
}
document.getElementById("editor").addEventListener("paste", pasteIntercept, false);
</script>
<h2>Log</h2>
<textarea rows="15" cols="80" id="log" readonly="true"></textarea>
</body>
</html>
Я действительно собираюсь предложить, чтобы он слушал каждую клавиатуру
, потому что он имеет несколько применений, если вы наберете @
, он предложит друзей, и т. д.
Вероятно, он сканирует текст, находит ссылки и делает их удобными для ссылок, а затем сканирует страницу, чтобы вы могли опубликовать ее как «Совместное использование»
Прослушайте событие keyup
в поле. Если содержимое поля изменилось более чем на 1 символ после одного нажатия
, значит, что-то было вставлено.
Как указывает @epascarello, также проверьте события щелчка правой кнопкой мыши, так как пользователь может использовать контекст меню.
Сравнить последовательные события onChange. Если разница между ними составляет более одного символа, это вставка. В противном случае он набирается.
Проверяйте поле с шагом в полсекунды. Если вы заметили большое изменение объема текста, вероятно, он был вставлен.
<script type="text/javascript">
$(document).ready(function(){
$("#text").keypress (function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if ((code == 86 || code == 118) && e.ctrlKey) //86 = v 118 = V
{
alert("Pasted!");
}
});
});
</script>
</head>
<body>
<textarea id="text">
</textarea>
</body>
</html>