Как Facebook обнаруживает когда ссылка, как ВСТАВЛЯЕТСЯ

Все знают, что это - потому что они используют голубей , конечно!

, О, да, это и Mapreduce.

6
задан David Murdoch 11 December 2009 в 22:01
поделиться

6 ответов

Современные браузеры поддерживают 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>
10
ответ дан 10 December 2019 в 00:39
поделиться

Я действительно собираюсь предложить, чтобы он слушал каждую клавиатуру , потому что он имеет несколько применений, если вы наберете @ , он предложит друзей, и т. д.

Вероятно, он сканирует текст, находит ссылки и делает их удобными для ссылок, а затем сканирует страницу, чтобы вы могли опубликовать ее как «Совместное использование»

1
ответ дан 10 December 2019 в 00:39
поделиться

Прослушайте событие keyup в поле. Если содержимое поля изменилось более чем на 1 символ после одного нажатия , значит, что-то было вставлено.

Как указывает @epascarello, также проверьте события щелчка правой кнопкой мыши, так как пользователь может использовать контекст меню.

3
ответ дан 10 December 2019 в 00:39
поделиться

Сравнить последовательные события onChange. Если разница между ними составляет более одного символа, это вставка. В противном случае он набирается.

2
ответ дан 10 December 2019 в 00:39
поделиться

Проверяйте поле с шагом в полсекунды. Если вы заметили большое изменение объема текста, вероятно, он был вставлен.

-3
ответ дан 10 December 2019 в 00:39
поделиться
 <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>
0
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: