2009-03-06
TwitterのWebページのaccesskeyがVimperatorのキーバインドと衝突する件の対策
いつのまにかtwitter.com/homeでアクセスキーが使えるようになってた.Ctrl-fでFavoritesを開いたり,Ctrl-eでPublic Timelineのページに移動するとかそんなの.
<ul id="tabMenu"> <li><a href="/home" accesskey="h" id="home_tab">Home</a></li> <li><a href="/replies" accesskey="r" id="replies_tab">@Replies</a></li> <li><a href="/direct_messages" accesskey="d" id="direct_messages_tab"><span id="message_count" class="stat_count">29</span> Direct Messages</a></li> <li><a href="/favorites" accesskey="f" id="favorites_tab">Favorites</a></li> <li><a href="/public_timeline" accesskey="e" id="public_timeline_tab">Everyone</a></li> </ul>
これがVimperatorのキーバインドと衝突して非常にうざったかったのでaccesskeyを無効化する方法を調べたところ,id:retletさんの以下の記事を見つけた.
retlet.net - VimperatorのキーバインドとバッティングするのでFirefoxのaccesskeyを無効化
http://retlet.net/log/2008/04/vimperator-accesskey-off.html
about:configでui.key.generalAccessKey = 0とすればいいらしい.
折角なのでVimperatorのset!コマンドを使ってabout:configの値を書き換えてみた.
set! ui.key.generalAccessKey = 0
.vimperatorrcに上の設定を追加して解決.ついでにWikipediaのようなMediaWikiのページのアクセスキーも無効化された.
2009-01-04
フレームのフォーカスの切り替えについて
複数フレームがあるサイトでは,]fと[fを使えばフォーカスするフレームを切り替えることができる.けど,
[count]]f
Focus next frame. Transfer keyboard focus to the [count]th next frame in order. The newly focused frame is briefly colored red. Does not wrap.
ヘルプにある通り,最後のフレームまで移動したときにもう一度移動しようとしてもwrapしてくれない.wrapしてくれると便利なんだけどなぁ.
2008-12-29
Yahoo!路線情報用設定がmulti_requester.jsを使って書けるようになった
前回の記事の後,id:suVeneさんがmulti_requester.jsをアップデートして私の記事にコメントで知らせてくれました.
今更ですが、multi_requester.js Ver.0.4.10 で、複数 %s に対応してみました。
http://coderepos.org/share/changeset/27521
http://vimperator.g.hatena.ne.jp/mickey24/20081225#c1230474859
まさに私のやりたかったことが可能になりました.しかも,siteinfoやmappingsの例まで丁寧にコメントいただきました.どうもありがとうございます.id:suVene++
というわけで,前回のYahoo!路線検索用設定は以下のようにmulti_requester.jsを使う形に書き換えられました.やったね!
javascript <<EOM liberator.globalVariables.multi_requester_siteinfo = [ { name: 'yahoo-transit', description: 'Yahoo transit', url: 'http://transit.yahoo.co.jp/search/result?from=%s&to=%s&type=1&ost=0&ei=utf-8&x=0&y=0', xpath: 'id("main")', }, ]; liberator.globalVariables.multi_requester_mappings = [ [',st', 'yahoo-transit', '!','渋谷 東京'], [',ts', 'yahoo-transit', '!','東京 渋谷'], ]; EOM
ただ,'!'を''にしてcommand lineで開こうとすると表示が崩れるのは何でだろう….
2008-12-25
Yahoo!路線情報用設定
よく使う路線の情報をキータイプ×3くらいで検索できると便利かなーと思ったので書いてみた.
マップしたキーをタイプすると現在時刻での検索結果がtabopenされる.
javascript <<EOM [ [',st','渋谷','東京'], [',ts','東京','渋谷'], ].forEach(function([key,from,to]){ liberator.modules.mappings.addUserMap([liberator.modules.modes.NORMAL], [key], 'Yahoo transit', function() { var url = 'http://transit.yahoo.co.jp/search/result?from=' + from + '&to=' + to + '&type=1&ost=0&ei=utf-8&x=0&y=0'; liberator.echo(':tabopen ' + url); liberator.execute(':tabopen ' + url); }, { rhs: ':tabopen http://transit.yahoo.co.jp/search/result...', noremap: true }); }); EOM
ちょっと適当すぎたかも.JavaScriptよく分かりません.
本当はmulti_requester.jsやpeekpage.jsを活用したかったけどうまくいかなかった.
(追記 2008/12/26 12:45)
現在時刻で検索する場合は引数に時刻を与えなくてもいいことが判明….
というわけでかなり簡単になりました.
(追記 2008/12/29 12:58)
multi_requester.jsがアップデートされたおかげで,上記の設定はmulti_requester.jsを使って楽に書けるようになりました.
詳しくはこちら.
suVene今更ですが、multi_requester.js Ver.0.4.10 で、複数 %s に対応してみました。
http://coderepos.org/share/changeset/27521
{
name: 'yahoo-transit',
description: 'Yahoo transit',
url: 'http://transit.yahoo.co.jp/search/result?from=%s&to=%s&type=1&ost=0&ei=utf-8&x=0&y=0',
xpath: 'id("main")'
}
こんな感じの SITE_INFO 用意して、
liberator.globalVariables.multi_requester_mappings = [
[',st', 'yahoo-transit','!', '渋谷 東京'],
[',ts', 'yahoo-transit','!', '東京 渋谷'],
];
こんな感じでマップしておけば、同じようなことができると思います。
mickey24おお,まさにやりたかったのはコレです!
ありがとうございます!
ただ,'!'を''にしてcommand lineで開こうとすると表示が崩れるのは何でだろう….
』
Yahoo!のサイトが、<dl><dt>, <ul><li> などで路線情報を定義し、CSS で頑張って見た目を表示させている為、HTML の部分だけでは崩れちゃうわけです。