ざっくり実装してみた。Chromeでは動いてる。