Link要素系bookmarklets
おお、そんなことが。ということで自分も試しに書いてみた。
誰かが言及済みだろうが、bookmarkletにkeywordをつけると、まるでコマンドラインユーザーインターフェイスのようだ。というかCUI。「%s」を活用すると、インタラクティブなbookmarkletを作れる。
javascript:(function(){
var linktype = RegExp("(^|\\s)".concat("%s", "(\\s|$)"), "i"), linkElem = document.getElementsByTagName("link");
for(var i = 0, len = linkElem.length;i < len; i++){
var rel = linkElem[i].getAttribute("rel").toString();
var rel = String(linkElem[i].getAttribute("rel"));
if(linktype.test(rel)){
location.href = linkElem[i].getAttribute("href");
break;
}
};
})();
これをキーワードmove
で登録して、アドレスバーにmove prevと入力すれば、rel="prev"
のhyper reference先へ移動できる (そういうlink要素があれば)。
本当に試しに書いてみた
という品質なので (って言うか、全くdebugしていないので < しろよ) 不具合が色々出そうな気がするが、木俣自身が使う分には既に満足した。
丁寧に作り込めば (たとえば該当linkが複数ある場合、複数の新規tabで開くとか、alternateの場合、alternate stylesheetは除外するとか) Link要素系の拡張機能要らずになれそう。
参考
- フォクすけブートキャンプ+ (Hatena::agenda)
- スリムなFirefoxでサイト内検索 (Hatena::agenda)
案の定bugった
rel属性もってないlink要素があるとnull.toString();
となりbugった。ので、修正。
場当たり的に直した副作用として、rel属性を持たないlink要素をnullで検索できるようになりました (が、rel="null"
(なんだそりゃ) と区別がつきません)。