JavaScriptでトリプルクリックの判別
いつの間にか、ほぼ1ヶ月ぶりの更新。
SBM Comments Viewerの修正をした。
窓の杜 - 【REVIEW】エクスプローラ上で手軽にシンボリックリンクを作成「Link Shell Extension」をインストールし、ハードリンクやジャンクションを使って、DropBoxにバックアップしようと試みていたら、以前に手動でバックアップしていた古いファイルによって現在のファイルが上書きされてしまった。
具体的には、DropBoxフォルダに手動で作成していたフォルダを削除し、バックアップしたいフォルダのジャンクションを削除したのと同じ名前で作成したら、DropBoxサーバー上のファイルの古い方のファイルと同期されてしまったらしい。
そして、ジャンクションフォルダが上書きされると、プロファイルフォルダにある被ジャンクションフォルダのファイルも変更されてしまった。
前にブログで修正したときのことを書いていたので簡単に再修正できたけど、多少変更したのでまた書いておく。SBMCommentsViewerにコメント再取得とコメントを閉じるリンクを追加
230行目あたり this.id_count = 'SBMCommentsViewerCountArea'; this.count = document.createElement('div'); this.count.setAttribute('id', this.id_count); this.count.setAttribute('style', count_css); this.count_opacity = this.count.style.opacity; this.count.addEventListener("mouseover", function(){ this.style.opacity = '1.0'; }, false); this.count.addEventListener("mouseout", function(){ this.style.opacity = comment_area.count_opacity; }, false); this.div.appendChild(this.count); //ここから追加 // close button(自分で追加したもの) var a_close = document.createElement('a'); a_close.setAttribute('href', "javascript:void(0)"); a_close.setAttribute('style', "position:absolute; right:0px; bottom:0px;"); a_close.innerHTML = "Close"; a_close.addEventListener("click", function(){comment_area.hide()}, false); this.div.appendChild(a_close); // reload button var a_reload = document.createElement('a'); a_reload.setAttribute('href', "javascript:void(0)"); a_reload.setAttribute('style', "position:absolute; right:70px; bottom:0px;"); a_reload.innerHTML = "Reload"; a_reload.addEventListener("click", function(){ comment_area.hide(); SBMCommentsViewer(); }, false); this.div.appendChild(a_reload); //ここまで追加 this.id_mini = 'SBMCommentsViewerMini'; 最終行近く if (key == BIND_KEY){ comment_area.toggle(); //ここから追加 } else if (key == 'CA-b') { comment_area.hide(); SBMCommentsViewer(); //ここまで } }, false);
やっていることはほぼ同じだけど、クリックでSBM Comments Viewerを表示したときのマウスカーソルの位置にCloseという閉じるリンクが来るようにした。
さらに、標準ではダブルクリックで閉じるようになっていると思うけど、コメント欄にあるURLの文字列をテキストリンクでダブルクリックしたときにも閉じてしまうので、トリプルクリックで閉じるように変更した。
210行目あたり CommentArea.prototype.setup = function () { if(this.id) return; this.id = 'SBMCommentsViewerArea'; this.div = document.createElement('div'); this.div.setAttribute('id', this.id); this.div.setAttribute('style', comment_area_css + 'display:none;'); //-の行を+に変更 - this.div.addEventListener("dblclick", function(){comment_area.hide()}, false); + this.div.addEventListener("click", function(e){if(e.detail == 3) comment_area.hide()}, false); document.body.appendChild(this.div);