タイトル通り昨日公開したoSBMCommentViewerのtips。
・縮小表示時の説明
・初期設定の変更
・cssによるデザインの変更
・キーバインドの変更
・利用SBMの変更
の豪華5本立
○縮小表示時の説明
オリジナルでは縮小表示時は「クリックするとコメント欄が表示される」という機能のみだったのに対し、色々ゴテゴテと追加したのでソレについての説明をしておきます。
上図で説明します。
・赤い「<」
ここをクリックするとコメントエリアが表示されます。
元来全体に割り当てられていた機能ですが、キーバインドを使ってれば不要な機能ですので縮小しました。
・青い「>」
右端の青いのは更に縮小するボタンです。
これをクリックすると以下のようになります。
めっさちっさくなります。
クリックすると元の大きさに戻ります。
見た目が左右対称になっていい感じなのでノリで付けました。
普通にSBMCommentViewerが邪魔になる事があったんですが、完全に見えなくするショートカットでも割り当てた方が利口な気がします。
でも見た目優先です。
尚、こいつにはショートカット割り当ててないです。
要望があったら付けますかね。
(operaだとposition:fixedの要素追加すると重いらしいので負荷かかるようなら戻すちっさいボタン消すかも。)
・各種SBMサイトのアイコン
アイコンをクリックすると、現在閲覧中のページをブックマークに追加するページに遷移します。
・各種SBMサイトの数字の部分
言わずもがな、ここはブックマークをしているユーザー数ですが、こちらにもリンクがあります。
ここをクリックした場合、各SBMサービスのブックマークユーザー一覧画面に飛びます。
なおこれらのリンクにtargetは指定していません。
普通にクリックしたら普通に遷移するので、新しいタブで開きたかったらshift+クリックなり、ホイールクリックを活用下さい。
・LDRの場合のリンク
こちらもSBMと似たような機能です。
アイコンをクリックすると、現在表示中のページのfeedを追加するページに移動します。
数字をクリックすると、現在数字が表示されているfeedの詳細ページに遷移します。
現在表示中のページと現在数字を表示中のfeedの違いがあるのを覚えておいてください。
別に覚えなくてもいいですが。
○初期設定の変更
昨日の記事内にも書いてますが、opera版と本家との違いの一つに設定データがドメインを越えて引き継がれないというのがあります。
これは逆に、このuser.jsが動いてほしく無いサイトでオート実行をオフにする事で、サイト毎に設定出来るというありがたい面もあるんですが、他の設定はよく使うモノがデフォルトに設定されてないと使いづらいです。
ってことで、デフォルトで選択されている項目をソース書き変える事で変更する方法を記載しておきます。
もっと設定しやすいように初期値郡を変数に切り出して先頭に出そうかと思ったんですが、なんか実行には不要なコードだし、それで無くても重いので出来るだけ避けたいと思ったので切り出しはやってません。
実際、切り出してもコンマ数秒とかなんだったら実装した方がいいんでしょうけどね。
(面倒臭いとかじゃないよ! 違うよ、全然違うよ!
・コメントかタグクラウドか
546行目
this.show_type = (typeof getCookieValue("show_type") != 'undefined') ? getCookieValue("show_type"): "Comment";
一番最後に書かれてる"Comment"を「"TagCloud"」に変更するとタグに出来ます。
・マルチポストを削除するか否か
548行目
this.remove_multipost = (typeof getCookieValue("remove_multipost") != 'undefined' || typeof getCookieValue("remove_multipost") != 'string') ? getCookieValue("remove_multipost"): true;
最後のtrueをfalseに書き変える事で変更出来ます。
・コメント表示時の並び順
549行目
this.sort_type = (typeof getCookieValue("sort_type") != 'undefined') ? getCookieValue("sort_type"): 'SBMAsc';
最後の'SBMAsc'を「'SBMDesc', 'DateAsc', 'DateDesc', 'UserAsc', 'UserDesc'」の何れかに変更可能です。
・タグクラウド表示時の並び順
551行目
this.tag_sort_type = (typeof getCookieValue("tag_sort_type") != 'undefined') ? getCookieValue("tag_sort_type"): 'NumberDesc';
最後の'NumberDesc'を「'NumberDesc', 'NameAsc', 'NameDesc'」の何れかに変更可能です。
・コメント表示時のタグ表示
553行目
this.show_tag = (typeof getCookieValue("show_tag") != 'undefined') ? getCookieValue("show_tag"): true;
最後のtrueをfalseに変更する事で非表示に出来ます。
・空コメントの表示/非表示
554行目
this.show_nocomment = (typeof getCookieValue("show_nocomment") != 'undefined') ? getCookieValue("show_nocomment"): true;
最後のtrueをfalseに書き換える事で非表示に出来ます。
・自動実行のオン/オフ
this.auto_start = (typeof getCookieValue("auto_start") != 'undefined') ? getCookieValue("auto_start"): true;
最後のtrueをfalseに書き換えれば、自動実行をオフに出来ます。
・実行時のコメント一覧表示
this.auto_start_open = (typeof getCookieValue("auto_start_open") != 'undefined') ? getCookieValue("auto_start_open"): false;
ここの最後のfalseをtrueに変更すると、毎回コメント一覧が表示された状態で起動します。
とてもウザいですね。
まぁ実装した方がこの解説書くより遥かに早いので、ほんとに面倒臭いとかじゃないです。
ただ、実装した場合速度に差が出るかどうか調査するのは面倒臭いのでやってません。
○cssによるデザインの変更
99行目~235行目までに記載されてます。
煮るなり焼くなり好きにしてくだしあ。
○キーバインドの変更
文字通りキーバインドの設定変更です。
これは本家にある機能と同じなので書く必要があるか分かりませんが、一部opera特有の問題があるので記載。
opera版ではAltをキーバインドで使えません。
これは、opera側がkeypressのイベントとしてaltを返さない実装なため。
keyupでは返るんだけど。。。
なおこの実装はopera 9.25系(?)での問題で、9.50bではその限りでは無いらしいのですが、実際に動作するかどうかは、うちに入れてないので確認してません。
○利用SBMの変更
現在4つのSBMサービスとLDRに対応してますが、ぶっちゃけ使ってないし見たくもないサービスがあったりすると思います。
(逆に欲しいサービスがあったら、言っていただければ善処しますです。
サービスが増えれば増えるだけ1ページ表示時に投げるリクエストが増えるので不要なサービスは省いた方が軽くてよい。
ということで省き方の解説。
(※この辺の関数呼び出しは次回くらいで大幅に変更する予定ではあるので、暫定的な設定にしかならないですが^^;
function loadSBM() { if(is_load == false){ ldLoad(); hbLoad(); dlLoad(); bzLoad(); ldrLoad(); is_load = true; } }1082行目~1091行目です。 例えばlivedoor clipを省きたい場合、「ldLoad();」のある1084行目の先頭に「//」を追加して、その行をコメントアウトしてください。
// ldLoad();
対応は以下
livedoor clip | ldLoad(); |
はてなブックマーク | hbLoad(); |
del.icio.us | dlLoad(); |
buzzurl | bzLoad(); |
livedoor reader | ldrLoad(); |
といった感じ。
なお、ソースの書き換えによる設定変更は、新しいバージョンに変わる度にやらんといかんので、かなり面倒ですね。
○今後やりたい事
・ソースの整理
jsonpを投げる所の差はurlとレスポンスの処理関数だけなので、それらをobject化してjsonp関数に渡すだけでいいようにしたい。
(渡す所も明示的に渡すんじゃなくて、配列に入ったjsonp objectを全部実行するとかにしたい。
・ミニミニ表示を初期状態に出来るような設定追加
・ミニミニ表示状態を切り替えられるようなキーバインドの追加
・他にjsonp対応の似たようなサービスがあったら追加出来るように。
・kanasann製の「UserScriptWidgetを管理するuserscript」への対応
野望
・アイコンの追加とかを簡単にして、クリック時の動作とかを関数で設定出来るようにすれば、機能追加出来るプラットフォームに成れ。。。ないよねー。
>パーソナルバーでやれ
コメントする