SBMCommentsViewerにコメント再取得とコメントを閉じるリンクを追加

読みたくてページを開いたものの、読む時間が無くてそのまま数時間ページを開いたままにしておく、ということが結構ある。そういうときに、はてブのコメントを再取得するためだけにページ全体をリロードしていたのだが、回線速度が遅いこともあり、かなり面倒くささを感じていたので、それを改善してみた。


SBM Comments Viewerのファイルを開き(ステータスバーのグリーズモンキーアイコンを右クリックし、SBM Comments Viewerの文字を右クリック)、ファイルのほぼ最後あたりに、+マークがついている行を追加する

        if (key == BIND_KEY){
            comment_area.toggle();
+        } else if (key == 'CA-b') {
+            comment_area.hide();
+            SBMCommentsViewer();
        }

key == ''の部分は、自分の好きなショートカットキーに設定する。
C -- control、S -- shift、A -- alt。組み合わせるときはCS-bなど。
これで、ショートカットキーでコメントのみを再読込できる。


さらに、コメントを開いた状態でダブルクリックすると、コメントが閉じるが、 テキストリンク (Text Link)を使っていると、コメント欄に記入されたURLが勝手に開かれたりすることがあって、これも面倒くさいので、コメントを閉じるリンクを追加した。

587行目あたり
                // no commenter
                var a_com = document.createElement('a');
                a_com.setAttribute('href', "javascript:void(0)");
                a_com.setAttribute('style', anchor_css + ((this.show_nocomment) ? option_text_css : ''));
                a_com.innerHTML = "No commenter";
                if(this.show_nocomment){
                    a_com.addEventListener("click", function(){option.setShowNoComment(false)}, false);
                }else{
                    a_com.addEventListener("click", function(){option.setShowNoComment(true)}, false);
                }
                li_comment_option.appendChild(a_com);
+                // close button(自分で追加したもの)
+                var a_close = document.createElement('a');
+                a_close.setAttribute('href', "javascript:void(0)");
+                a_close.setAttribute('style', "position:absolute; right:0px;");
+                a_close.innerHTML = "Close";
+                a_close.addEventListener("click", function(){comment_area.hide()}, false);
+                li_comment_option.appendChild(a_close);

これでファイルを保存し、リロードすると、以下のように表示される。


コメント再取得をマウスで行いたいなら、// close button の前に以下のように追加

+                // reload button
+                var a_reload = document.createElement('a');
+                a_reload.setAttribute('href', "javascript:void(0)");
+                a_reload.setAttribute('style', "position:absolute; right:70px;");
+                a_reload.innerHTML = "Reload";
+                a_reload.addEventListener("click", function(){
+                    comment_area.hide();
+                    SBMCommentsViewer();
+                }, false);
+                li_comment_option.appendChild(a_reload);

positionなどは適当な数字で。