instead of "0<x%n&", you should be able to do "x%n&&". Works for me on Chrome.
My goal is to shave 2 bytes, so you can change the key handler back to onkeydown. :P
Your proposal does not cover the top edge.
Your proposal does not cover the top edge.