Home > スポンサー広告 > livedoor Readerのショートカットキーを変更する User JavaScript

スポンサーサイト

スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/103-91d19d12
Listed below are links to weblogs that reference
スポンサーサイト from Karafuto Blog
Trackback from 2009-04-28 (火) 19:47

-

管理人の承認後に表示されます (more…)

Trackback from 2010-08-11 (水) 13:44

-

管理人の承認後に表示されます (more…)

Home > スポンサー広告 > livedoor Readerのショートカットキーを変更する User JavaScript

Home > user javascript > livedoor Readerのショートカットキーを変更する User JavaScript

livedoor Readerのショートカットキーを変更する User JavaScript

user javascript

Opera User JavaScriptを書いています。

livedoor Readerのショートカットキーを User JavaScriptで少し変更、追加してみた。

enter
ピンを開く
x
ピンを付ける / 外す
h
ヘッダを非表示 / 表示
y
ショートカットキー一覧のウィンドウを表示

スクリプト

loadイベントのリスナーが実行された後、ショートカットキーを設定する。

// ==UserScript==
// @include     http://reader.livedoor.com/reader/*
// @exclude
// ==/UserScript==


window.opera.addEventListener('AfterEventListener.load', function (e){
    // init()関数か調べる
    if (e.listener.toString().indexOf('function init()') == -1) return;

    Keybind.add("enter", Control.open_pin);
    Keybind.add("x", Control.pin);
    Keybind.add("h", Control.toggle_fullscreen);
    Keybind.add("y", Control.open_keyhelp);
    // イベントリスナーを削除
    this.removeEventListener('AfterEventListener.load', arguments.callee, false);
}, false);

'AfterEventListener.load'は loadイベントリスナーの後。

追記: 2008年2月18日 フィードが読み込まれた時も関数が実行されていたので、イベントリスナーを削除するremoveEventListener()をスクリプトに追加した。

追記: 2008年7月2日 Opera 9.50からは 'window.onload'のイベントハンドラは捕捉できないようなので、(嘘を書いてました。Opera 9.50でも 'window.onload'のイベントハンドラは捕捉できます。)http://reader.livedoor.com/js/reader_main.0.3.4.jsの「window.onload = init;」を「document.addEventListener("DOMContentLoaded", init, false);」に書き換えるようにした。

追記: 2008年7月7日 window.onloadに付けられた init()関数と間違えて、先に動き出す browser.jsのイベントリスナーを捕捉して、スクリプトを発動していたので、検出したイベントリスナーが init()関数か確かめてから実行するようにした。

もっと面倒なスクリプト

'AfterEventListener'という便利なものを知らずに書いたスクリプト。消すのもあれなんで残しておく。

サイトのスクリプトが実行される前に、スクリプトのショートカットキーを置換する。

// ==UserScript==
// @include     http://reader.livedoor.com/reader/*
// @exclude
// ==/UserScript==

window.opera.addEventListener('BeforeScript', function(e) {
    var src = e.element.getAttribute('src');
    if (src && src.match(/reader_pref\.0\.3\.4\.js$/) ) {
        text = e.element.text;
        text = text.replace(/\'Z\'\,/, "'Z|h',");
        text = text.replace(/\'p\'\,/, "'p|x',");
        text = text.replace(/\'j\|enter\'\,/, "'j',");
        text = text.replace(/\'o\'\,/, "'o|enter',\n'open_keyhelp':'y',");
        e.element.text = text;
    }
}, false);

'BeforeScript'はサイトのスクリプトが実行される前。

このUser JavaScriptは「http://reader.livedoor.com/js/reader_pref.0.3.4.js」の以下のところを置換している。

var KeyConfig = {
     'read_next_subs'   : 's|shift+ctrl|shift+down',
     'read_prev_subs'   : 'a|ctrl+shift|shift+up',
     'read_head_subs'   : 'w|shift+home',
     'read_end_subs'    : 'W|shift+end',
     'feed_next'        : '>|J',
     'feed_prev'        : '<|K',
     'reload_subs'      : 'r',
     'scroll_next_page' : 'space|pagedown',
     'scroll_prev_page' : 'shift+space|pageup',
     'pin'              : 'p',
     'open_pin'         : 'o',
     'view_original'    : 'v|ctrl+enter',
     'scroll_next_item' : 'j|enter',
     'scroll_prev_item' : 'k|shift+enter',
     'compact'          : 'c',
     'focus_findbox'    : 'f',
     'blur_findbox'     : 'esc',
     'unsubscribe'      : 'delete',
     'toggle_leftpane'  : 'z',
     'toggle_fullscreen': 'Z',
     'toggle_keyhelp'   : '?'
};

さらにもう一つのスクリプト

二番目に書いたスクリプト。'AfterEventListener'があるのでいらないが例によって残しておく。

init()関数にショットカットキーを設定するメソッドを足す。

// ==UserScript==
// @include     http://reader.livedoor.com/reader/*
// @exclude
// ==/UserScript==

window.opera.defineMagicFunction( 'init', function( f) {
    f();
    Keybind.add("enter",Control.open_pin);
    Keybind.add("x",Control.pin);
    Keybind.add("h",Control.toggle_fullscreen);
    Keybind.add("y",Control.open_keyhelp);
});

'window.opera.defineMagicFunction()'はスクリプトのグローバル関数を上書きする。

参考

Comments:0

Comment Form

Trackback+Pingback:2

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/103-91d19d12
Listed below are links to weblogs that reference
livedoor Readerのショートカットキーを変更する User JavaScript from Karafuto Blog
Trackback from 2009-04-28 (火) 19:47

-

管理人の承認後に表示されます (more…)

Trackback from 2010-08-11 (水) 13:44

-

管理人の承認後に表示されます (more…)

Home > user javascript > livedoor Readerのショートカットキーを変更する User JavaScript

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。