Hatena::ブログ(Diary)

sawatの日記 RSSフィード

2007-08-07 (火)

[]LDRでフォーカスされているリンクをEnterキーで開くuser.js 23:01 LDRでフォーカスされているリンクをEnterキーで開くuser.jsを含むブックマーク

上のネタを使ったコネタ。

LDRやFastLadderではEnterキーがエントリーの順送り、逆送り(j,kと同じ)に当てられているので、タブでリンクをフォーカスしてるのにEnter押しても開けない。ひどい。この問題を解決する user.js を書いた。

openlink4ldr.user.js

// ==UserScript==
// @name        OpenLink for LDR
// @description Open a focused link by the enter key.
// @namespace   http://d.hatena.ne.jp/sawat/
// @include     http://reader.livedoor.com/reader/*
// @include     http://fastladder.com/reader/*
// ==/UserScript==

(function(){
  var w = (typeof unsafeWindow == 'undefined')? window : unsafeWindow;

  if(!w.Keybind) {
    if (w.addEventListener) {
      w.addEventListener('load', arguments.callee, true);
    } else if (w.attachEvent) {
      w.attachEvent('onload', arguments.callee);
    }
    return;
  }
  
  w.Keybind.add('enter|shift+enter|e', function(){
    var activeElement = (document.activeElement || w.getSelection().focusNode);
    if(activeElement.href) {
      open(activeElement.href, "_blank");
    }
  });
})();

エントリーの送りはj, kを使うので、Enter/Shift+Enterの処理を上書きして割り当てた。

普通、リンクにフォーカスが当たっているときはEnterで「開く」、Shift+Enterで「新しいウィンドウで開く」だが、LDRの性質上どっちも_blankで開くようにした。ついでに左手でも押せるように'e'にも割り当てておいた。