| // Listen for shift-backspace or unmodified backspace and navigate if not in |
| // an editable field. We capture the event at the Window to let any handlers |
| // or listeners registered on the Document have a chance to handle it first. |
| window.addEventListener('keydown', function(e) { |
| // Listening on the Window means the event has no path (see |
| // http://crbug.com/645527), so we'll have to look at the focused (active) |
| // element. This means it will not work properly with shadow DOM. |
| // TODO: Fix behavior with shadow DOM when the above bug is resolved. |
| if (e.key === 'Backspace' && |
| !e.defaultPrevented && |
| !e.altKey && |
| !e.ctrlKey && |
| !e.metaKey && |
| !isEditable(document.activeElement)) { |
| e.shiftKey ? window.history.forward(): window.history.back(); |
| e.preventDefault(); |
| } |
| }); |