title: stopPropagation() for a KeyboardEvent
body: <p><strong>Question</strong></p>
  
  <p>How can I successfully prevent a KeyboardEvent from bubbling, without doing a <code>return false</code> immediately in the event handler? </p>
  
  <p>Note: the event is of type <code>KeyboardEvent</code> and I'm <em>not</em> using jQuery, so <code>e.stopPropagation()</code> is not an option (there's not such method on the <code>KeyboardEvent</code> object when I <code>console.log</code> it). </p>
  
  <p><strong>More info</strong></p>
  
  <p>The events are bound using native methods (<code>addEventListener()</code> or <code>attachEvent()</code>, depending on the browser), and the defaults are canceled using this function:</p>
  
  <pre><code>this.cancelHandler = function(event) {
      /**
       * Cross browser event cancellation (e.preventDefault() is not available without jQuery 
       */
  
      var e = event || window.event;
      // All good browsers…
      if (e.preventDefault) {e.preventDefault();}
      // …and IE
      if (e.returnValue) {e.returnValue = false;}
  
      return false;
  };
  </code></pre>
  
  <p>That <em>prevents</em> the defaults from firing, but it doesn't stop propagation for those <code>KeyboardEvent</code>s. </p>
  
  <p>I'm looking for something compatible with <em>at least</em> IE7+ and modern browsers. </p>