2009-12-13
■[メモ][livedoor Reader] Chrome Extension で、livedoor Reader のキーバインドをカスタマイズする
livedoor Readerにソーシャルブックマーク登録数を表示するChrome Extensionを作ってみた - 今日覚えたことを参考にして、livedoor ReaderのショートカットキーをカスタマイズするGreasemonkeyスクリプトのような、Keybind の追加を、Chrome Extensionにします*1。
- ダウンロード
- 4.0.266.0 でテスト
- インストールは、「設定、拡張機能」や、chrome://extensions/ などから、「デベロッパー モード: パッケージ化されていない拡張機能を読み込みます...」で、展開したzipのsrc以下を選択して読み込む
- または、rake package:crx として、crxファイルを生成し、Chrome にドロップ
- 添付している Rakefile は、ChromeFullFeed ver 1.0.0 - 枕を欹てて聴くからコピー
- manifest.json
- "run_at": "document_start"でないとうまくいかない場合がある?
{ "name": "LDR Keybind Extension", "version": "1.0", "description": "livedoor Reader Keybind extension.", "content_scripts": [ { "js": ["main.js"], "run_at": "document_start", "matches": [ "http://reader.livedoor.com/reader/*", "http://fastladder.com/reader/*" ] } ] }
- main.js
(function(){ window.addEventListener('load', function(){ var urls = [ chrome.extension.getURL('ldrwithtouchall.user.js'), chrome.extension.getURL('ldrkeyhackkeytouchall.user.js') ]; for(var i = 0; i < urls.length; i++){ var script = document.createElement('script'); script.type = 'text/javascript'; script.charset = 'utf-8'; script.src = urls[i]; document.body.appendChild(script); } }, false); })();
- ldrkeyhackkeytouchall.user.js
- 元はlivedoor ReaderのショートカットキーをカスタマイズするGreasemonkeyスクリプトからコピー
- キーバインドはOpera, FireFoxで使っていた以下のものを使用
- livedoor Reader ショートカットキーで記事を全部既読にする - てんぷらメモ@はてな
- livedoor Reader ショートカットキーでログアウトする - てんぷらメモ@はてな
(function() { Keybind.add('d', function() { var feed = get_active_feed(true); if(feed) { touch_all(feed.subscribe_id); } }); Keybind.add('t', function() { var queue = new Queue(); get_active_feed().items.forEach(function(item) { queue.push(function() { window.open(item.link); }); }); queue.interval = 200; queue.exec(); }); Keybind.add('q', function() { var logout = '/reader/logout'; window.open(logout, '_self'); }); }) ();
- ldrwithtouchall.user.js
(function(){ var description = "\u5168\u90e8\u65e2\u8aad\u306b\u3057\u307e\u3059"; var label = "\u5168\u90e8\u65e2\u8aad\u306b\u3059\u308b"; entry_widgets.add('test_touch_all', function(feed) { return [ "<span class='button' onclick='touch_all(\"", feed.subscribe_id, "\")'>", label, "</span>" ].join(""); }, description); })();
*1:Operaなどで使用していた、User Script をそのまま使用すると、たまに?読み込めないことがあるみたいなので




