GitHub以前書いた、LDRではてなブックマーク拡張を通してはてブのコメントをみるTomblooパッチをuserChrome.jsを使って書き直してもっと使い易くしたものです。概要的にははてなブックマーク拡張のコメントビューアー機能をuserChrome.jsからよびだしてLDRの記事についてるはてブコメントを表示するものです。viewer.uc.js記事にフォーカスがあった状態でmを押すとはてなコメントビューアーが開きます。jを押すと(次の記事に移動ショートカット)コメントビューアーが開いてたときは閉じるようにしてあります。以下、技術的な話まず、userChrome.jsをどうデバッグすればいいのか忘れたので、とりあえずFirebugのコンソールへ吐くlog関数を用意した。x;}もっと手軽に呼べたような気がしたけど...次はChrome側とContent側でやりとりする方法Chrome側ってのはuseChrome.jsや拡張機能などのいわゆる特権持ってて何でもできてしまう実行範囲のことContent側ってのは通常のWebサイトの実行範囲のこと。Chrome側からContent側をいじろうとすると、XPCNativeWrapperでラップされているのでそのままではアクセスできません。wrappedJSObjectを使って回避するのはあまり望ましいやり方ではないと思うので、今回はMessageEventを利用してChromeとContentを行き来してみました。")";}まずはChrome側のdocumentにイベントを待ち受けるhatenaPingMessageというeventを受け取れるにします。Content側でスクリプトを実行するためにJavaScript:プロトコルハックを使ってブックマークレット的に実行します。その中で、hatenaPingMessageというオレオレイベントを発火させるpingToChromeを作って、pingToChromeで発火したイベントをChrome側でキャッチしてChrome権限が必要な処理(はてなコメントビューアーを呼び出す)をしています。Chromeの拡張とかで似たような仕組みになってた気がします。タグ:javascriptLDRuserChrome.jsはてブお知らせ欄JavaScriptに関する最新情報は週一でJSer.infoを更新しています。efcl/efcl.github.ioからご意見下さい関連記事コメントを。