くずはスクリプト用キーショートカット追加スクリプ㌧
del.icio.us のヤツのオリジナル。
バックアップ用に貼っとく。暫定は見に行ってないから動かなくても知らないです。
// ==UserScript== // @name Qwerty Shortcut Key Appender // @namespace http://qwerty.on.arena.ne.jp // @include http://qwerty.on.arena.ne.jp/*, http://533.pr.arena.ne.jp/* // ==/UserScript== (function () { var posts; var form; var keyMap; var marginTop; var w = unsafeWindow; var _onload = w.onload; w.onload = function() { if (_onload) _onload(); onload(); } var onload = function () { InitTags(); InitShortCuts(); } function InitTags() { posts = document.anchors; marginTop = document.getElementsByTagName("body")[0].childNodes[1].offsetTop; var tags = document.getElementsByTagName("form"); form = tags[0]; } function InitShortCuts() { keyMap = new Array(); keyMap["k".charCodeAt(0)] = FindPrevious; keyMap["j".charCodeAt(0)] = FindNext; keyMap["r".charCodeAt(0)] = Reload; document.addEventListener("keypress", HandleKeyEvent, false); } function HandleKeyEvent(event) { var charCode = event.which; var handler = keyMap[charCode]; if (handler) handler(event); } function GetOffsetTop(source) { return (source.offsetParent) ? GetOffsetTop(source.offsetParent) + source.offsetTop : source.offsetTop; } function FindPrevious(event) { var pos = pageYOffset + 20; var post = posts[0]; for (var i=0; i<posts.length; i++) { if (GetOffsetTop(posts[i]) >= pos) { break; } post = posts[i]; } w.scrollTo(0, GetOffsetTop(post) - 20); } function FindNext(event) { var pos = pageYOffset + 20; var post = posts[0]; for (var i=0; i<posts.length; i++) { post = posts[i]; if (GetOffsetTop(posts[i]) > pos) { break; } } w.scrollTo(0, GetOffsetTop(post) - 20); } function Reload(event) { form.submit(); } })();