title: Detect if button click real user or triggered by a script
body: <p>Is there any method that enables me to detect whether a button click was performed by a real user and not some automated method (javascript) that a user has loaded onto their browser developer console or other browser developer tool?</p>
  
  <p>I tried the following methods suggested in various stackoverflow posts but none of them appear to work. 
  REF: <a href="https://stackoverflow.com/questions/7635274/how-to-detect-if-a-click-is-a-mouse-click-or-triggered-by-some-code">How to detect if a click() is a mouse click or triggered by some code?</a></p>
  
  <p>Script Detection methods tried and failed:</p>
  
  <pre><code>mybutton.click(function (e) {
      if (!e.which) {
          //Triggered by code NOT Actually clicked
          alert(' e.which - not a real button click')
      } else if ('isTrusted' in e &amp;&amp; !e.isTrsuted) {
          //Triggered by code NOT Actually clicked
          alert(' e.isTrusted - not a real button click')
      } else if (e.originalEvent === undefined) {
          //Triggered by code NOT Actually clicked
          alert(' e.originalEvent - not a realbutton click')
      }
      //                  else if (!e.focus) {
      //                      //triggered  // does not detect e.focus on a real btn click
      //                      alert(' e.focus - not a realbutton click')
      //                  }
      else {
          // Button hopefully clicked by a real user and not a script
      }
  })
  </code></pre>
  
  <p>If I run the following script to trigger the button click from the Chrome browser console none of the methods above traps it as being triggered by a script.</p>
  
  <pre><code>var button = document.getElementById("btnSubmit");
  button.click();
  </code></pre>
  
  <p>==========================================================================</p>
  
  <p>Thank you for all your responses and thanks to stackoverflow for providing such a great site that facilitates so much knowledge sharing and for saving us techies an untold number of hours.</p>
  
  <p>It appears that I still do not have reliable method. All 3 browsers (FF, IE &amp; Chrome) provide a developer/console interfaces for a user to run/inject a javascript on my webpage. It appears that each browser flavor traps some event property values a little differently. For example: Chrome traps the difference between a script activated cick and a real user with e.screenX but in IE: e.screenX has the same value for both a script click (synthetic) and a user button click</p>
  
  <p>The following detection methods either did not work at all or are inconsistent across the different browsers: e.which e.isTrsuted e.originalEvent (event.source != window) (e.distance != null)</p>
  
  <p>The mousedown event appears to be only triggered by a real user button click, but I have to assume there is some script method to emulate a mousedown in addition to a button click event</p>
  
  <pre><code>$(me.container + ' .mybutton').mousedown(function (e) { 
      alert('mouseisdown real button click'); 
  }
  </code></pre>
  
  <p>If anyone can figure out a reliable method that works across multiple browsers, that detects the difference between a synthetic (script) button click and a button click by a user, you will deserve superhero status.</p>