27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Detect authentic click events
							 | 
						|||
| 
								 | 
							
								localeTitle: Обнаружение аутентичных событий кликов
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## Обнаружение аутентичных событий кликов
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Там может быть ситуация, когда вы хотите сделать некоторые конкретные вещи только в том случае, если событие click было действительно инициировано пользователем, а не каким-то скриптом для имитации события click.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Существует очень простое решение этой проблемы, объект событий javascript предоставляет нам свойство `.istrusted` , которое можно использовать, чтобы сказать разницу.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Вот пример использования этого метода
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```javascript
							 | 
						|||
| 
								 | 
							
								// Assume there is a button in the HTML 
							 | 
						|||
| 
								 | 
							
								 const button = document.querySelector('button'); 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 button.addEventListener('click', (e) => { 
							 | 
						|||
| 
								 | 
							
								  if (e.isTrusted) { 
							 | 
						|||
| 
								 | 
							
								    console.log('Button clicked by a real user'); 
							 | 
						|||
| 
								 | 
							
								  } else { 
							 | 
						|||
| 
								 | 
							
								    console.log('Button click simulated by a script'); 
							 | 
						|||
| 
								 | 
							
								  } 
							 | 
						|||
| 
								 | 
							
								 }); 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 button.click() // Outputs "Button click simulated by a script" 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 |