Smart Communication Design Company
ホーム > ナレッジ > Blog > Web標準Blog > 2010年10月 > classList (DOMTokenList) の実装状況

Web標準Blog

Web標準Blogでは、Web標準の利用に興味のあるWebサイト管理者、Webデザイナーの方向けに、Web標準を利用するための手法やノウハウ、参考になるリソース等を、国内外を問わずご紹介します。

2010年10月1日

classList (DOMTokenList) の実装状況

フロントエンド・エンジニア 渡邉

HTML5では従来のW3C DOM APIに加え、以前から実装されていたが仕様がなかったものや、まったく新しい仕様が定義されています。今日は、それらのひとつであるclassListについて触れます。

classListはHTML5で初めて定義された新しいインタフェイス、DOMTokenListがとる実体のひとつです。サンプルコードや詳細はMozilla Developer Streetの記事MDCの項目が参考になるでしょう。

classListはいち早くMozillaが実装を行い、Firefox 3.6.0 (rv:1.9.2)から利用できるようになっていました。しかし、他のブラウザ(レンダリングエンジン)には実装されていない状況が続いていました。

つい先日、この状況が変化しました。WebKitに実装が入ったのです(該当バグ)。これでSafariやGoogle ChromeといったWebKit利用ブラウザの次期バージョンでは、classListが利用可能になるかもしれません。

Operaは直近のDevelopment Snapshot (Presto 2.6.35, Build 9053)では未実装です。Presto 2.6の実装状況一覧でも実装予定は明言されていませんでした。

IEは9 Beta 1(ないし PP5、9.0.7930.16406)では未実装です。フィードバック フォーラムに要望はあがっているものの、Microsoftからのコメントは対応の明言を避けており、実装がなされるかどうかは不透明です。

これまでDOMTokenListが提供しているような機能を実現するためには、classNameなどを用いて取得したclass属性値を、正規表現などによって分解・再構築する必要がありました(MJLでも内部でclassNameをいじるための各種関数を定義しています)。

DOMTokenListは、そうした手間やネイティブ実装であることによる高速化を期待できるAPIとして有用です(が、用途によっては取り回しにくい面も持ちあわせています――今後のエントリで補足できればと思います)。HTML5が定義する範囲、その広範さの一例として取り上げてみました。