Safari RSSでスペースバーにてページ送り(戻し)
Safari RSSにて、スペースバーでページ送り出来るようにするカスタマイズ。 これはメチャメチャ便利なんで標準で搭載して欲しい機能ですねぇ。
やり方は、JavaScriptが書かれたテキストファイルに追記をするだけ。 簡単なんですけれども、このファイルがまた曲者で、rootアカウントじゃないと保存が出来ないというもの。
そこで Pseudoの登場。 Pseudoを起動すると小さなウインドウが出ますので、そこに「root権限で編集を行うエディター」をドロップします。 今回私はJeditで編集を行いますので、これが起動されていたら一端終了し、アイコンをPseudoの小ウインドウにドロップします。 するとJeditはroot権限で起動される筈です(ShapeShifterでアピアランスを変更されている方は、Jeditがアクアで起動されている事に気付きます)
これで準備はオッケー。 次に、
/System/Library/PrivateFrameworks/
SyndicationUI.framework/Versions/A/Resources/Articles.js
をJedit (root)で開きます。 そして検索窓を出して(cmd + F)、
function handleScrollKeys
という語句で検索すると1ヶ所にヒットします。 このファンクションの全貌は
function handleScrollKeys( event )
{
if ( scroller == undefined ) scroller = document.getElementById('scroller');
var keyIdentifier = event.keyIdentifier;
switch(keyIdentifier) {
case "Up":
scroller.scrollByLines(-1);
break;
case "Down":
scroller.scrollByLines(1);
break;
case "PageUp":
scroller.scrollByPages(-1);
break;
case "PageDown":
scroller.scrollByPages(1);
break;
case "Home":
scroller.scrollLeft = 0;
scroller.scrollTop = 0;
break;
case "End":
scroller.scrollLeft = 0;
scroller.scrollTop = scroller.scrollHeight;
break;
default:
return;
}
event.preventDefault();
}
こんな風です。 よくよく見ると「case "***"」と「break;」というセットが幾つも並んでいる事が判ります。 ここに以下の1セットを追加するのです。
case "U+000020":
if (document.getElementById('searchfield').value.length != 0) return;
if (event.shiftKey) scroller.scrollByPages(-1);
else scroller.scrollByPages(1);
break;
追加した状態を上の画像で示しましたので参考にして下さい。 画像はこのページ上では小さいですが、新規ウインドウで開いて下さい。 アップロードは原寸で行っております。
編集(追記)が終わったら保存します。 そしてSafariを再起動。
Safariを再起動したら取り敢えず
ここらでも新規タブでアクセスしてみて下さい。 Safari RSSモードになります。
ここでスペースバーを押すと1ページ分先に送られます。 shift + spaceですと1ページ分戻ります。





