Node.jsを使っていて衝撃だったのは、JavaScriptなのにDOMを操作できないことでした.
そこでDOM操作をするためのライブラリ、jsdomを導入します.
0.前提
手順に従ってnpmをインストールしてください.
1.インストール
<注意>
jsdomの最新版(4.x以降)はNode.jsに対応していません.代わりにio.jsに対応するようになっています.
Node.jsと一緒に動かせる最新版は3.x系なので、以下のコマンドでインストールできます.
1 |
% npm install jsdom@3 |
ポイントは@3の部分です.これでversion 3の中で最新のものがインストールできます.
npmで指定のバージョンのパッケージをインストールするには以下のコマンドを実行します.
1 |
npm install <パッケージ名>@<バージョン> |
なお、インストールする際は対象のアプリケーションの場所でインストールする必要があります.
グローバルにインストールしたい場合は、-gをつけてください.
2. 利用法
基本型はこれです.
1 2 3 4 5 6 7 8 9 |
<span class="pl-s">var</span> jsdom <span class="pl-k">=</span> <span class="pl-s3">require</span>(<span class="pl-s1"><span class="pl-pds">"</span>jsdom<span class="pl-pds">"</span></span>); jsdom.env( <span class="pl-s1"><span class="pl-pds">"</span>http://nodejs.org/dist/<span class="pl-pds">"</span></span>, [<span class="pl-s1"><span class="pl-pds">"</span>http://code.jquery.com/jquery.js<span class="pl-pds">"</span></span>], <span class="pl-st">function</span> (<span class="pl-vpf">errors</span>, <span class="pl-vpf">window</span>) { <span class="pl-en">console</span><span class="pl-s3">.log</span>(<span class="pl-s1"><span class="pl-pds">"エラー:</span></span><span class="pl-s1"><span class="pl-pds">" + errors + ",DOM: " + window.document</span></span>); } ); |
jsdom.envの引数は以下の通り.
第1引数:対象のURL(もしくはHTML文字列)
第2引数:生成したDOMの中で利用したいJS
第3引数:読み込み後のcallback関数. このwindowはブラウザのwindowと同じように利用できる.
もっとシンプルな使い方はこれです.
1 2 |
<span class="pl-s">var</span> jsdom <span class="pl-k">=</span> <span class="pl-s3">require</span>(<span class="pl-s1"><span class="pl-pds">"</span>jsdom<span class="pl-pds">"</span></span>); <span class="pl-s">var</span> doc <span class="pl-k">=</span> jsdom.jsdom(<span class="pl-s1"><span class="pl-pds">"</span><html><body></body></html><span class="pl-pds">"</span></span>); |
パースしたいHTMLのテキストを渡せばDOMが返ってきます.
もっと他のAPIを試してみたい方はこちらのドキュメントを参照ください.