emacsを使ってJavaScriptのコーディングをしていると、emacsからブラウザのコンソールを叩くことができれば、と思うことがあります。
これを手助けしてくれるのがspank-jsです。インストールは、こちらをご覧ください。なお、JavaScriptの編集は、js2-modeが推奨されています。
インストールが終わったらswank-jsを実行してswankサーバーを起動させます。
1 |
$ swank-js |
emacsでslime-connectを実行してswankサーバーに接続します。途中で下のようなメッセージが表示された場合は、無視して”y”と入力します。
1 |
Versions differ: 2013-05-14 (slime) vs. 2012-02-12 (swank). Continue? (y or n) |
以下のプロンプトが表示されます。
1 |
NODE > |
swank-jsは、localhostの8009ポート(デフォルト)でHTTPサーバーを起動しますが、このサーバーはプロキシとして機能します。上のプロンプトから”,”(カンマ)を入力するとミニバッファにCommand: と表示されますので、ここでtarget-urlと入力し、テストしたいサイトのURLを入力します。
1 |
Target URL: http://www.reddit.com/ |
ブラウザを立ち上げてhttp://localhost:8009にアクセスすると上で入力したURLのページが表示されます。
emacsのNODEプロンプトから”,”を入力し、ミニバッファでsticky-select-remote(もしくはselect-remote)を実行します。ミニバッファにRemote: と表示されます。ここでタブを押すと選択できる接続先が表示されます。ここではChrome25.0/browserを選択。
1 2 3 |
Click <mouse-2> or type RET on a completion to select it. (C-?: help) Possible completions are: Chrome25.0/browser node.js/direct |
プロンプトがNODEから切り替わってブラウザのコンソールが表示され、emacsからブラウザのコンソールを叩くことができます。
1 2 |
CHROME-25.0> $(".sitetable a.title").map(function(n) { return (n + 1) + ". " + $(this).text(); }).get()[9] 10. Human stem cells cloned for the first time |