2014-12-12 2 views

ответ

1

Вы можете использовать ванильный Javascript, как в других андерсерах, или рассмотреть возможность использования jquery, чтобы вы могли легко обнаружить клики, не связанные с человеком.

1. Определите глобальный обработчик событий click, используя jquery. Таким образом, вы можете поймать все клики на элементах страницы.

$(document).click(function(event) { 
    }); 

2.Проверьте, существует ли событие event.originalEvent, если оно существует, щелчок был выполнен человеком. More info

Для щелчков мыши

$(document).click(function(event) { 
    if (event.originalEvent === undefined) { 
     alert('not human') 
    } else { 
     alert(' human'); 
    } 
}); 

Для нажатия клавиши

$(document).keypress(function(event) { 

    if (event.originalEvent === undefined) { 
     alert('not human') 
    } else { 
     alert(' human'); 
    } 
}); 

Здесь приведен пример кода.

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
$(document).click(function(event) { 
    if (event.originalEvent === undefined) { 
     alert('not human') 
    } else { 
     alert(' human'); 
    } 
}); 
$(document).keypress(function(event) { 

    if (event.originalEvent === undefined) { 
     alert('not human') 
    } else { 
     alert(' human'); 
    } 
}); 
    $(document).click(); 
    $(document).keypress(); 
}); 
</script> 
</head> 
<body> 
<p>Click me !</p> 
</body> 
</html> 
+0

он не помечен jquery. исправьте его перед тем, как вы проголосуете. –

0

Возможно, вы захотите посмотреть события mousemove и нажать события. Если вы ловите события кликов, но нет событий mousemove, я думаю, можно с уверенностью сказать, что роботы нажимают на ваш сайт.

1

может быть, мы можем сделать что-то вроде этого:

document.onmousedown = function(e) { 
    if (typeof(e.pageX) !== 'undefined' && e.pageX != 0) 
     { 
     alert ('human'); 
     }else{ 
      alert ('else'); 
     } 
    } 

или аналогичный подход:

document.onmousedown = function(e) { 
      if(e.screenX && e.screenX != 0 && e.screenY && e.screenY != 0){ 
       alert("real button click"); 
       }else{ 
       alert("something else"); 
       } 
     } 

посмотреть здесь: Detect if button click real user or triggered by a script

Примечание: если вы хотите посетить JQuery решение это:Check if event is triggered by a human

+0

Вы не можете проверить e.originalEvent это way.Parameter е доцент содержат originalEvent при использовании document.onmousedown.e содержит координаты положения мыши нажата. – Deshan

Смежные вопросы