27 lines
		
	
	
		
			821 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
		
			821 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Detect authentic click events
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Detect authentic click events
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There might be a situation where you want to do some specific things only if the click event was genuinely triggered by a user and not by some script to simulate a click event.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There is a very simple solution to this problem, javascript event object provides us with a `.istrusted` property, which can be used to tell the difference.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Here is an example of using this method
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```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"
							 | 
						||
| 
								 | 
							
								```
							 |