Я не уверен, могут ли они генерировать событие нажатия клавиши «изначально» (я думаю, вы можете быть правы, что они не могут, но я не удивлюсь, если узнаю, что есть какой-то крайний случай, когда это возможно).
Однако я не думаю, что у них возникнут проблемы с простым выполнением element.onkeypress()
напрямую. Если бот может определить, что ему нужно нажать клавишу для продвижения вперед, то на самом деле это сводится к тому, что необходимо вызвать определенный метод обработчика событий, и бот может сделать последнее. Он также может создать свой собственный поддельный объект Event, содержащий код ключа, а затем передать его и/или установить на window.event
.
Теоретически вы можете обнаружить это, очень строго следя за объектом события в своем обработчике. Я не думаю, что бот сможет легко создать нативный эквивалентный объект события, поэтому, возможно, проверив цепочку прототипов, вы сможете различить их. Однако это почти наверняка будет слишком хрупким для общего использования и не будет надежно работать в разных браузерах/средах/плагинах/и т. д.
Таким образом, я не думаю, что это плодотворный путь, потому что вы не можете сказать в обработчике событий, является ли событие «настоящим» или нет. Собственный код браузера отличается, поскольку боты не могут на самом деле инициировать событие щелчка, но в Javascript я не вижу простого способа предотвратить простой вызов вашего метода.
person
Andrzej Doyle
schedule
10.11.2010